【问题标题】:How do I return a boolean value from a query during condition evaluation?如何在条件评估期间从查询中返回布尔值?
【发布时间】:2011-10-18 01:02:52
【问题描述】:

我需要这样的东西:

select (len(someLongTextColumn)=0) as isEmpty;

上面的不行,

还有其他选择吗?

【问题讨论】:

    标签: sql-server boolean


    【解决方案1】:

    如果转换为位,那么大多数客户端代码可以直接将其读取为布尔值(SQL Server 没有布尔类型)

    SELECT
        CAST(
            CASE
               WHEN len(someLongTextColumn) = 0 THEN 1 ELSE 0
            END AS bit
            ) as isEmpty;
    

    如果你有很多,请使用这样的位变量:Imply bit with constant 1 or 0 in SQL Server

    【讨论】:

      【解决方案2】:

      试试这个。

      SELECT (CASE WHEN LEN(SomeLongTextColumn) = 0 THEN 1 ELSE 0 END) AS IsEmtpy
      

      @gbn 对如何返回布尔值有很好的解释。

      【讨论】:

        【解决方案3】:

        SQL 服务器:

        SELECT CONVERT(BIT, 1) -- true
        SELECT CONVERT(BIT, 0) -- false
        

        【讨论】:

          【解决方案4】:

          在 MS SQL 2012 及更高版本中,您可以使用 IIF 作为简写:

          select IIF(len(someLongTextColumn) = 0, 1, 0) as isEmpty;
          

          【讨论】:

            猜你喜欢
            • 2016-05-03
            • 2016-04-17
            • 1970-01-01
            • 2011-07-02
            • 2011-11-28
            • 1970-01-01
            • 1970-01-01
            • 2015-12-22
            • 2014-05-01
            相关资源
            最近更新 更多