为了账号安全,请及时绑定邮箱和手机立即绑定

如何执行if…然后在SQL选择中?

如何执行if…然后在SQL选择中?

忽然笑 2019-06-12 14:54:30
如何执行if…然后在SQL选择中?如何执行IF...THEN在SQL SELECT口供?例如:SELECT IF(Obsolete = 'N' OR InStock = 'Y' ? 1 : 0) AS Saleable, * FROM Product
查看完整描述

3 回答

?
MM们

TA贡献1886条经验 获得超2个赞

这个CASE语句是SQL中最接近if的语句,所有版本的SQLServer都支持该语句。

SELECT CAST(
             CASE
                  WHEN Obsolete = 'N' or InStock = 'Y'
                     THEN 1
                  ELSE 0
             END AS bit) as Saleable, *FROM Product

你只需要做CAST如果您希望将结果作为布尔值。如果你对int,这起作用是:

SELECT CASE
            WHEN Obsolete = 'N' or InStock = 'Y'
               THEN 1
               ELSE 0
       END as Saleable, *FROM Product

CASE语句可以嵌入到其他语句中。CASE语句,甚至包括在集合中。

SQLServer Denali(SQLServer 2012)添加IIF语句,该语句也可在存取(由马丁·史密斯):

SELECT IIF(Obsolete = 'N' or InStock = 'Y', 1, 0) as Saleable, * FROM Product


查看完整回答
反对 回复 2019-06-12
?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

在这种情况下,案例陈述是您的朋友,其形式有两种:

简单的例子:

SELECT CASE <variable> WHEN <value>      THEN <returnvalue>
                       WHEN <othervalue> THEN <returnthis>
                                         ELSE <returndefaultcase>
       END AS <newcolumnname>FROM <table>

扩大案件:

SELECT CASE WHEN <test>      THEN <returnvalue>
            WHEN <othertest> THEN <returnthis>
                             ELSE <returndefaultcase>
       END AS <newcolumnname>FROM <table>

您甚至可以将CASE语句放入ORDERBY子句中,以便进行真正花哨的排序。


查看完整回答
反对 回复 2019-06-12
  • 3 回答
  • 0 关注
  • 1065 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信