TSQL返回布尔值是不可能的?

时间:2010-09-17 14:10:40

标签: sql-server-2005 tsql

我不能在TSQL中写一些东西

declare @set1 int
declare @set2 int
set @set1=1
set @set2=2

select @set1 < @set2

结果是真的吗?

我知道我可以使用

case when @set<@set then 'true'

但我不能按照上面写的方式做到吗?

2 个答案:

答案 0 :(得分:2)

没有; T-SQL不会将布尔表达式视为数据。同样,您无法将布尔表达式直接分配给bit字段。

答案 1 :(得分:0)

SQL Server没有“隐含”类型,它是表达式的布尔值。实际上它可以是SQL服务器的任何类型,并且可以说是惯例,表示表达式是.net中的布尔值。

它有一个几乎像boolean的位数据类型,并在客户端代码中直接映射到boolean,并接受true或false作为字符串。

DECLARE @foo bit
SET @foo = 'true' -- = 1