Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak podstawić ciąg, jeśli rekord ma wartość NULL w T-SQL?

Możesz użyć COALESCE lub ISNULL . Pierwsza jest standardowa i zwraca pierwszy NOT NULL argument (lub NULL jeśli wszystkie argumenty są NULL )

SELECT COALESCE(micv.value,'Pending') as value

ISNULL jest ograniczony tylko do 2 argumentów, ale jest bardziej wydajny w SQL Server, jeśli pierwsza testowana wartość jest kosztowna do oceny (np. podzapytanie).

Jeden potencjalny "gotcha" z ISNULL należy pamiętać, że zwraca typ danych pierwszego parametru, więc jeśli zastępowany łańcuch jest dłuższy niż pozwalałby na to typ danych kolumny, będziesz potrzebować rzutowania.

Np.

CREATE TABLE T(C VARCHAR(3) NULL);

INSERT T VALUES (NULL);

SELECT ISNULL(C,'Unknown')
FROM T

Zwróci Unk

Ale ISNULL(CAST(C as VARCHAR(7)),'Unknown') lub COALESCE obie będą działać zgodnie z oczekiwaniami.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wstaw zaktualizowaną procedurę przechowywaną na serwerze SQL

  2. Zwracanie uprawnień do tabeli z serwera połączonego w programie SQL Server (przykłady T-SQL)

  3. Wykonywanie pakietu SSIS jako zadanie SQLAgent

  4. Jak zrobić kolumnę widoku NOT NULL

  5. Wybór COUNT(*) z DISTINCT