Widziałem wiele osób korzystających z funkcji COALESCE zamiast ISNULL. Z wyszukiwarek internetowych dowiedziałem się, że COALESCE jest standardem ANSI, więc mamy tę zaletę, że wiemy, czego się spodziewać podczas jego używania. Jednak ISNULL wydaje się łatwiejszy do odczytania, ponieważ wydaje się bardziej jasne, co robi.
Zdaję sobie również sprawę, że ISNULL jest dość trudny, ponieważ działa inaczej na różnych serwerach baz danych i w różnych językach.
Wszystko to, moim zdaniem, sprowadza się do stylu i standardów. Biorąc pod uwagę, że styl jest subiektywny, czy jest jakiś powód, aby używać COALESCE zamiast ISNULL (lub odwrotnie)? W szczególności, czy istnieje przewaga wydajności jednego nad drugim?
COALESCE
jest po prostu nieintuicyjna;)
COALESCE
ocenie jest oceniane dwukrotnie.