2017-09-12 23 views
-3
declare @custid varchar(50) = null 

select * 
from Items 
where ShowItemNlyCusLoggedInWeb = case when 
             @custid = not null then 
             ShowItemNlyCusLoggedInWeb=0 or isnull 

これは私のために働いていません。CASE when節を使用

+1

'@custid =ないnull'なので探して - 間違いました。 '@custidはnullではありません ' - 正しい。 – Sankar

+0

まだ動作していません –

+0

あなたのクエリ/ケースステートメントは不完全です。 [case msdn](https://docs.microsoft.com/en-us/sql/t-sql/language-elements/case-transact-sql)を参照してください – Sankar

答えて

0
declare @custid varchar(50)=null 

select * 
from Items 
where (ISNULL(ShowItemNlyCusLoggedInWeb,0) = 0 OR @custid IS NULL) 
+0

@cusidがnullの場合nullでない場合は何かをフィルタリングしたいすべてのデータを表示する –

+0

データのフィルタリングに使用する列はどれですか。まだ 'ShowItemNlyCusLoggedInWeb'ですか? @SatG_shanu –

+0

はいまだあります。もし@cusidがnullでないなら、私はShowItemNlyCusLoggedInWebを表示します.cusid isnullなら0の値を返します。0と1の値を表示します –

0

あなたはこの

WHERE 1 = CASE WHEN @custid IS NOT NULL AND ShowItemNlyCusLoggedInWeb = 0 THEN 1 
       WHEN @custid IS NULL AND ShowItemNlyCusLoggedInWeb IN (0,1) THEN 1 
       ELSE 0 
      END