SELECT 1 = 1不能正常工作
问题描述:
我的问题有点泛化,但让我们假设我想在SQL Server中测试一些表达式。我写SELECT 1=1
或SELECT 'a' > 'B'
并按F5,希望看到结果,就像我在输入SELECT 0, 1
时一样。
但我得到一个错误,而不是。这是为什么?我应该用什么来即时评估这些表情?SELECT 1 = 1不能正常工作
答
SQL Server没有布尔数据类型。
您将需要使用SELECT CASE WHEN 1=1 THEN 1 ELSE 0 END
答
你可以使用一个case语句:
select case when 1=1 then 'true' else 'false' end
select case when 'a'>'B' then 'true' else 'false' end
或IF ... ELSE
if 1=1
select 'true'
else
select 'false'
if 'a' > 'B'
select 'true'
else
select 'false'
+0
为什么downvote有效的答案?事实上,我的答案的前半部分与当前最高票数的答案相同。 – 2011-01-13 15:37:26
答
简单的方法是select 1 where <test expression here>
答
你可以把你的表情放在之后3210这样
select 'true' where 1=1
select 'true' where 1<>1
你
可以把它放在IF语句
IF 1+1=2
BEGIN
PRINT 'One and one makes two.'
END
答
您可以使用以下方法来打开比较器的输出到伪布尔:
select isnull((select 'false' where not(1**0=1**)) ,'true')
或者有一个int作为返回:
select isnull((select 1 where 1<1) ,0)
+1不是布尔数据类型?我从未意识到这一点。我很惊讶,但它是有道理的,因为我总是用一点布尔数据,而你的答案已经有7票... – 2011-01-13 16:28:21