我如何实现以下目标:
select (1 < 2) as One, (1 > 2) as Two
以便产生以下结果:
One Two
-----------------
True False
我正在使用SQL Server,但跨DBMS示例会很好。
答案 0 :(得分:13)
假设这是SQL服务器,您可以使用CASE语句。
select (case when (1 < 2) then 'True' else 'False' end) as one,
(case when (1 > 2) then 'True' else 'False' end) as two
from table
在条件的位置,您也可以使用任何变量或任何列值。基本上是表达。
答案 1 :(得分:0)
好吧,在Oracle中,您可以执行类似
的操作SELECT CASE
WHEN 1 < 2 THEN
'TRUE'
ELSE
'FALSE'
END AS ONE,
CASE
WHEN 1 > 2 THEN
'TRUE'
ELSE
'FALSE'
END AS TWO
FROM DUAL;
请注意,Oracle在数据库中没有BOOLEAN类型(与PL / SQL相反, 具有BOOLEAN),因此case表达式返回字符串。
分享并享受。
答案 2 :(得分:0)
使用案例陈述:
declare @value1 int, @value2 int
set @value1 = 1
set @value2 = 2
select
case when (@value1 < @value2) then 'True' else 'False' end as One
case when (@value1 > @value2) then 'False' else 'True' end as Two
from table
根据您的需要,您可以对值进行硬编码,或者您可以在需要更改值时执行与此类似的操作。您也可以将case语句组合成一列,或者将其分解为进行小于或等于类型的比较。