СТВЕРДЖЕННЯ з NULL та NOT NULL


12

Чи є кращий спосіб записати рядки нижче в SQL Server 2005?

CASE
WHEN (ID IS NULL)
   THEN 'YES'
WHEN (ID IS NOT NULL)
   THEN 'NO'
END AS ID_Value,

3
Визначте «краще».
Веслі

Я не знайомий з MSSQL, але якщо він має щось на зразок IF-функції в MySQL, ви можете написати такий код:IF(ID IS NULL, 'YES', 'NO') AS ID_Value
Кондібас

1
SQL Server 2012 має, IIFале питання позначене міткою 2005.
Мартін Сміт

Ви повинні мати можливість це зробити за допомогою наведеного нижче твердження. isnull(nullif(isnull(ID,'Y'),ID),'N')
Джейсон Камберленд

1
@ Bappy1988 Чому це було б краще, ніж відповідь Джея?
dezso

Відповіді:


16

Ви спробували:

CASE WHEN (ID IS NULL) THEN 'YES' ELSE 'NO' END AS ID_Value,

Я маю доступ лише до 2008 року, але сподіваюся, що цей синтаксис все-таки запрацює у 2005 році ( здається, щось таке, що було б частиною початкового визначення CASE).


Так - я намагався. CASE WHEN (ID IS NULL) THEN 'YES' ELSE 'NO' END AS ID_ValueАле я шукаю інший кращий підхід до чогось, наприклад, IF(ID IS NULL, 'YES', 'NO') AS ID_Valueу пані Sql, щоб все могло бути в одному рядку. Будь-які пропозиції, будь ласка

7
Ця відповідь є в одному рядку. Якщо ви хочете, ви можете помістити всю заяву в один рядок.
ypercubeᵀᴹ
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.