我想测试一些评估而不需要在任何表上工作。 例如,您可以写
SELECT 1+1
>2
我想实现这样的目标:
SELECT 2 > 1
>FALSE
我知道大多数引擎都不具备布尔数据类型的概念,但我不知道它们的内部工作方式(即使我猜测所有内容<> 0都是{{1} ,就像在C)。无论如何,回复的格式确实无关紧要,无论是true
还是true/false
答案 0 :(得分:13)
SELECT CASE WHEN 2 > 1 THEN 'True' ELSE 'False' END
答案 1 :(得分:5)
SELECT
CASE
WHEN 2 > 1 THEN 1
ELSE 0
END
答案 2 :(得分:4)
SELECT CASE WHEN 2 > 1 THEN cast(0 as bit) ELSE cast(1 as bit) END
答案 3 :(得分:3)
修改强>
SQL Server 2012(Denali):
SELECT IIF(2 > 1, 'TRUE', 'FALSE')
答案 4 :(得分:1)
在Mysql和Oracle中,显然是SQL-Server,你可以使用nullif
(忽略SQL Server的from dual
)所以,假设你将null视为true,那么你可以用这种方式处理相等的测试没有凌乱的案件陈述或不得不处理字符串。
SQL> select nullif(1,0) from dual;
NULLIF(1,0)
-----------
1
SQL> select nullif(1,1) from dual;
NULLIF(1,1)
-----------
SQL>
答案 5 :(得分:0)
只需使用:
SELECT expr1 condition expr2
例如
SELECT 1 < 2 # returns 1
如果条件计算结果为true,则返回1,否则返回0。
已成功测试: