如果列具有特定值,则返回true

时间:2017-05-11 07:48:53

标签: sql tsql

我有一个数据库,其中创建者已使用决定使用smallint而不是bit来表示真/假场景。 False代表0True代表-1。我想翻译一下,最好用比CASE更简单的语法。我有什么方法可以做这样的事情:

SELECT (column == -1) 'value_as_bool'

FROM   myTable

将(在大多数语言中)将列转换回真/假列...

4 个答案:

答案 0 :(得分:1)

您可以使用IIF功能。用法; IIF(boolean_expression,true_value,false_value)

答案 1 :(得分:1)

在案例中,陈述将是:

当myTable.column = -1然后0 else 1以[NAME]

结束时的情况

如果您愿意,可以使用FALSE和TRUE替换0和1,它在SQL中使用BOOLEAN / bit类型:)

答案 2 :(得分:1)

我认为最简单的解决方案是将int值转换为bit0False其他所有内容True

SELECT CAST(column As Bit) 'value_as_bool'
FROM   myTable

答案 3 :(得分:0)

您可以声明一个变量,在IF / ELSE语句中设置后返回它,如:

DECLARE @Result Bit

IF column =-1  
    SET @Result = 0
ELSE
    SET @Result = 1
RETURN @Result

Here for more Info关于SQL中的bool值:

  

在Management Studio中,它显示为false / true值(至少在   最新版本。)

     

通过ASP.NET访问数据库时,它将公开该字段   作为布尔值。

希望这对你有所帮助。