iT邦幫忙

0

mssql case 問題請教

  • 分享至 

  • xImage

您好:
如下 語法
握有參數@aa
可以用 A=CASE WHEN @='Y' THNE @aa
else 'N'
END
來做判斷

但or內那一段
要如何用@bb
若 bb='Y' 要該條件
@bb='N' ,不要該條件

A=@aa
or (
	     B in ('1','2'..)
	AND  (C<>C2 OR d <>d2 )

)

謝謝

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
純真的人
iT邦大師 1 級 ‧ 2024-03-30 13:28:48
最佳解答

這樣吧~
@bb='N' 代表此判斷略過~

A=@aa
or (
	B in ('1','2'..)
	AND  ( (C<>C2 OR d <>d2 ) or @bb='N' )

)

也就是 跟下面是一樣的感覺~
AND 1=1 無意義的為真的判斷XD...

A=@aa
or (
	B in ('1','2'..)
	AND 1=1

)

或者你指的是這樣的判斷

A=@aa
or (
	B in ('1','2'..)
	AND  (C<>C2 OR d <>d2 )
    AND bb='Y'
)

當 bb='N' 會是以下的為假的判斷XD~

A=@aa
or 1=2
看更多先前的回應...收起先前的回應...
noway iT邦研究生 1 級 ‧ 2024-04-03 13:27:21 檢舉

您好: 應該是這一個邏輯
沒法用CASE 來給OR( ) 這一段判斷嗎?

A=@aa
or (
	B in ('1','2'..)
	AND  (C<>C2 OR d <>d2 )
    AND bb='Y'
)

可以用case 加在裡面~參考~

A=@aa
or (
	(case when @bb = 'Y' then 1 else 2 end) = 1
	and (
		B in ('1','2')
		AND  (C<>C2 OR d <>d2 )
	)
)
SunM0on iT邦新手 4 級 ‧ 2024-04-08 08:57:19 檢舉

你是怎麼看懂問題的QQ,@bb整段都沒有但你知道他在說甚麼

觀落陰/images/emoticon/emoticon13.gif

noway iT邦研究生 1 級 ‧ 2024-04-09 07:56:51 檢舉

謝謝 您:
我後來改先在內圈,判斷 Y/N
where 外圈,再用判斷後了來做 做
謝謝

我要發表回答

立即登入回答