在SQL语句中选择比较结果

时间:2011-03-17 11:50:25

标签: sql

我如何实现以下目标:

select (1 < 2) as One, (1 > 2) as Two

以便产生以下结果:

One     Two
-----------------
True    False

我正在使用SQL Server,但跨DBMS示例会很好。

3 个答案:

答案 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语句组合成一列,或者将其分解为进行小于或等于类型的比较。