SQL Server Coalesce

SQL Server Coalesce

Od czasu do czasu spotykamy sytuację, w której musimy poradzić sobie z wartościami zerowymi w bazie danych. W tym samouczku przyjrzy się ważnej funkcji serwera SQL, która umożliwia porównanie wartości i zwrócenie pierwszej wartości nie-zerowej w zestawie.

Jaka jest wartość zerowa?

Możemy zdefiniować wartość zerową jako brak lub brak wartości. W SQL Server wartość zerowa odnosi się do kolumny, której wartość jest nieznana lub brakuje. Stąd zero lub pusty ciąg nie jest wartością zerową.

SQL Server Coalesce Funkcja

Funkcja Coalesce () na serwerze SQL jest używana do sekwencyjnej oceny zestawu wartości i zwrócenia pierwszej wartości nie-zerowej z zestawu.

Możesz się zastanawiać, dlaczego muszę użyć funkcji Coalesce () nad isNull ()?

Czasami możesz użyć funkcji Coalesce () jako alternatywy dla isnull (). Zaletą łączenia się nad Isnullem jest to, że akceptuje on ponad dwa parametry.

Składnia funkcji Coalesce () jest jak pokazano:

Coalesce (Expression1, Expression2,… Expressionn)

Funkcja przyjmuje wyrażenia skalarne i zwraca pierwsze wyrażenie nie-zerowe z dostarczonego zestawu. Jeśli wszystkie wyrażenia ocenią do NULL, funkcja zwróci również wartość zerową, wskazując, że nie ma wartości nie-zerowej.

Możesz użyć funkcji Coalesce w klauzulach SQL, które akceptują wyrażenia, takie jak wybór, gdzie grupa przez itp.

Właściwości funkcji SQL Server Coalesce ()

Funkcja Coalesce zawiera następujące właściwości:

  1. Wyrażenia skalarne muszą być podobne.
  2. Funkcja zawsze najpierw ocenia liczbę całkowitą.
  3. Może to zająć więcej niż jedno wyrażenie

Spójrzmy na różne przykłady korzystania z funkcji Coalesce () na serwerze SQL.

Przykład 1

Poniższy przykład pokazuje, jak korzystać z funkcji Coalesce, aby zwrócić pierwszą wartość non-null z dostarczonego zestawu.

Wybierz Coalesce (NULL, „NULL”, NULL);

Powyższy kod powinien zwrócić ciąg „null”.

Przykład 2

Możesz także użyć funkcji Coalesce na zbiorze wartości liczb całkowitych, jak pokazano w poniższym kodzie przykładowym:

Wybierz Coalesce (NULL, 1, 2, 3, 4, 5, NULL);

Ponieważ pierwsza wartość nieerowa w zestawie wynosi 1, funkcja powinna zwrócić 1 jako:

Przykład 3

Co się stanie, jeśli użyjemy funkcji Coalesce z wyrażeniami innego typu? Rozważ przykładowy kod poniżej:

Wybierz Coalesce (NULL, „NULL”, 100, NULL);

Jeśli wykonasz powyższy kod, SQL Server zwraca komunikat o błędzie jako:

Przykład 4

Dobrym przykładem przypadków użycia funkcji Coalesce jest wykonywanie połączenia ciągu. Rozważ przykładowe zapytanie poniżej:

Użyj SalesDB;
Wybierz FirstName + " + MiddleInitial + LastName FullName od klientów;

Zauważasz, że powyższe zapytanie zwraca rzędy wartości zerowych, jak pokazano:

Aby to rozwiązać, możemy użyć funkcji Coalesce, jak pokazano w pytaniu poniżej:

Użyj SalesDB;
Wybierz FirstName + " + Coalesce (MiddleInitial,") + LastName FullName od klientów;

Kod powinien wyeliminować wartości zerowe, jak pokazano na poniższym wyjściu:

Przykład 5

Możesz użyć funkcji Coalesce, aby zastąpić wartości zerowe nowymi wartościami.

Na przykład rozważ przykładowe zapytanie poniżej:

Użyj SalesDB;
Wybierz * od klientów
Zamów przez CustomerID;

To zwraca kolumny w tabeli klientów. Będziesz zniósł wartości w kolumnie MiddleItal:

Zamiast wartości zerowej, możemy użyć funkcji Coalesce, aby zwrócić ciąg „pusty”, w którym brakuje środkowej oddziału.

Przykładowe zapytanie jest takie, jak pokazano:

Użyj SalesDB;
Wybierz CustomerId, FirstName, Coalesce (MiddleInitial, „Brak”) jako MiddleInitial, LastName od klientów
Zamów przez CustomerID;

Powyższy kod zastępuje wartości zerowe ciągiem „brakujące”, jak pokazano:

Porównaj Coalesce () VS Case

Jeśli użyłeś wyrażenia przypadku na serwerze SQL, zauważysz, że funkcja Coalesce () zachowuje się podobnie. Wynika to z faktu, że funkcja Coalesce () jest bardziej kompaktową i zminimalizowaną wersją instrukcji sprawy. Jest to mniej kodu i jest znacznie czytelne.

Owinięcie!

Ten przewodnik obejmował podstawy korzystania z funkcji SQL Server Coalesce, aby uzyskać pierwszy nie-null z danego zestawu. Wykazaliśmy również przykładowe przypadki użycia funkcji Coalesce.

Dziękujemy za przeczytanie i sprawdzenie więcej samouczków SQL Server.