2012-05-23 79 views
17

當您使用Scalar Function時,如何在CASE聲明中檢查NULL如何使用標量函數檢查CASE語句中的NULL?

我原來的查詢是...但它失敗

SELECT CASE dbo.fnCarerResponse('') 
      WHEN NULL THEN 'Pass' 
      ELSE 'Fail' 
     END 

我讀了SO問題有關使用IS NULL,像這樣......

SELECT CASE dbo.fnCarerResponse('') IS NULL 
      WHEN NULL THEN 'Pass' 
      ELSE 'Fail' 
     END   

但是這給了incorrect syntax near the keyword is錯誤

您能在CASEScalar Function嗎?

回答

24

您正在使用的CASE錯誤的風格 - 你需要使用CASE WHEN <expression> THENCASE <expression> WHEN <expression> then

SELECT CASE 
WHEN dbo.fnCarerResponse('') IS NULL 
THEN 'Pass' 
ELSE 'Fail' 
END 
+0

DOH ...感謝指針 – SteveC

6
SELECT CASE 
     WHEN dbo.fnCarerResponse('') IS NULL 
     THEN 'Pass' 
     ELSE 'Fail' 
     END 
+0

DOH ...感謝您的指針 – SteveC

4
SELECT CASE 
      WHEN dbo.fnCarerResponse('') is NULL THEN 'Pass' 
      ELSE 'Fail' 
     END 
+0

DOH ...感謝指針 – SteveC