第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

SQL:WHERE子句中的IF子句

SQL:WHERE子句中的IF子句

開滿天機 2019-10-15 13:56:51
是否可以在MS SQL 的WHERE子句中使用IF子句?例:WHERE    IF IsNumeric(@OrderNumber) = 1        OrderNumber = @OrderNumber    ELSE        OrderNumber LIKE '%' + @OrderNumber + '%'
查看完整描述

3 回答

?
縹緲止盈

TA貢獻2041條經(jīng)驗 獲得超4個贊

使用CASE語句

UPDATE:先前的語法(如少數(shù)人指出的那樣)不起作用。您可以按以下方式使用CASE:


WHERE OrderNumber LIKE

  CASE WHEN IsNumeric(@OrderNumber) = 1 THEN 

    @OrderNumber 

  ELSE

    '%' + @OrderNumber

  END

或者您可以使用@NJ Reed指出的IF語句。


查看完整回答
反對 回復 2019-10-15
?
米琪卡哇伊

TA貢獻1998條經(jīng)驗 獲得超6個贊

您應該能夠在沒有任何IF或CASE的情況下執(zhí)行此操作


 WHERE 

   (IsNumeric(@OrderNumber) AND

      (CAST OrderNumber AS VARCHAR) = (CAST @OrderNumber AS VARCHAR)

 OR

   (NOT IsNumeric(@OrderNumber) AND

       OrderNumber LIKE ('%' + @OrderNumber))

根據(jù)SQL的風格,您可能需要根據(jù)是否支持隱式強制轉換將訂單號上的強制轉換調(diào)整為INT或VARCHAR。


這是WHERE子句中非常常見的技術。如果要在WHERE子句中應用某些“ IF”邏輯,您需要做的就是將帶有布爾AND的額外條件添加到需要應用它的部分。


查看完整回答
反對 回復 2019-10-15
?
呼啦一陣風

TA貢獻1802條經(jīng)驗 獲得超6個贊

您根本不需要IF語句。


WHERE

    (IsNumeric(@OrderNumber) = 1 AND OrderNumber = @OrderNumber)

OR (IsNumeric(@OrderNumber) = 0 AND OrderNumber LIKE '%' + @OrderNumber + '%')


查看完整回答
反對 回復 2019-10-15
  • 3 回答
  • 0 關注
  • 3060 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號