Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да замените низ, ако записът е NULL в T-SQL

Можете да използвате COALESCE или ISNULL . Първият е стандартен и връща първия NOT NULL аргумент (или NULL ако всички аргументи са NULL )

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

ISNULL е ограничен само до 2 аргумента, но е по-ефективен в SQL Server, ако първата стойност, която трябва да се тества, е скъпа за оценяване (напр. подзаявка).

Една потенциална грешка с ISNULL трябва да знаете, че той връща типа данни на първия параметър, така че ако низът, който трябва да бъде заместен, е по-дълъг, отколкото би позволил типът данни на колоната, ще ви трябва преобразуване.

Напр.

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

INSERT T VALUES (NULL);

SELECT ISNULL(C,'Unknown')
FROM T

Ще върне Unk

Но ISNULL(CAST(C as VARCHAR(7)),'Unknown') или COALESCE и двете ще работят по желание.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Запетаи в CSV данни

  2. Защо няма прозоречни функции в клаузите where?

  3. Не може да се промени дизайна на таблицата в SQL Server 2008

  4. как да шифровате колоната с парола

  5. Екраниране на низ в SQL Server, така че да е безопасен за използване в израза LIKE