25

NULLを使用している場合、CASEステートメントでどのようにチェックしますScalar Functionか?

私の元のクエリは...でしたが、失敗しました

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エラーを与えます

Scalar Functionを持ってもらえますCASEか?

4

5 に答える 5

35

間違ったスタイルを使用しています - notCASEを使用する必要があります:CASE WHEN <expression> THENCASE <expression> WHEN <expression> then

SELECT CASE 
 WHEN dbo.fnCarerResponse('') IS NULL
 THEN 'Pass'
 ELSE 'Fail'
END
于 2012-05-23T13:29:27.947 に答える
9
SELECT CASE 
         WHEN dbo.fnCarerResponse('') IS NULL 
         THEN 'Pass'
         ELSE 'Fail'
       END   
于 2012-05-23T13:29:58.600 に答える
5
SELECT  CASE 
          WHEN dbo.fnCarerResponse('') is NULL THEN 'Pass'
          ELSE 'Fail'
        END
于 2012-05-23T13:30:04.813 に答える
1

この方法も使用できます。

SELECT   CASE ISNULL(dbo.fnCarerResponse(''),'NULLVALUE')
           WHEN 'NULLVALUE' THEN 'Pass'
           ELSE 'Fail'
         END
于 2020-04-06T20:36:59.947 に答える