开发者社区> 问答> 正文

SQL:WHERE子句中的IF子句

是否可以在MS SQL 的WHERE子句中使用IF子句?

例:

WHERE
    IF IsNumeric(@OrderNumber) = 1
        OrderNumber = @OrderNumber
    ELSE
        OrderNumber LIKE '%' + @OrderNumber + '%'

展开
收起
心有灵_夕 2019-12-28 23:24:01 997 0
1 条回答
写回答
取消 提交回答
  • 使用CASE语句 UPDATE:先前的语法(如少数人指出的那样)不起作用。您可以按以下方式使用CASE:

    WHERE OrderNumber LIKE
      CASE WHEN IsNumeric(@OrderNumber) = 1 THEN 
        @OrderNumber 
      ELSE
        '%' + @OrderNumber
      END
    
    

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

    2019-12-28 23:24:14
    赞同 展开评论 打赏
问答分类:
SQL
问答地址:
问答排行榜
最热
最新

相关电子书

更多
SQL Server在电子商务中的应用与实践 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载