我有一个数据库,其中创建者已使用决定使用smallint
而不是bit
来表示真/假场景。 False
代表0
。 True
代表-1
。我想翻译一下,最好用比CASE
更简单的语法。我有什么方法可以做这样的事情:
SELECT (column == -1) 'value_as_bool'
FROM myTable
将(在大多数语言中)将列转换回真/假列...
答案 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
值转换为bit
。 0
将False
其他所有内容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访问数据库时,它将公开该字段 作为布尔值。
希望这对你有所帮助。