在WHERE子句中使用IF语句

时间:2014-01-21 14:59:45

标签: sql pervasive-sql

我有一个用户定义的功能,我想做一个选择,并根据它是否比另一个更大或更小来选择一个列。

例如:

Select
   t.A, t.B
From
  Table t
Where
  if(t.A <= t.B) then
    use t.A
  else
    use t.B

这可能吗?提前谢谢!

3 个答案:

答案 0 :(得分:2)

好像你想要

SELECT 
  CASE
    WHEN t.A <= t.B
    THEN t.A 
    ELSE t.B 
  END  AS Smaller
FROM Table t

答案 1 :(得分:1)

没有!但您可以使用case声明

Select
   t.A, t.B
From
   Table t
Where
   (case when t.A <= t.B then t.A ELSE t.B END) = SomeValue

或者如果select语句中只需要较小的列

Select
   (case when t.A <= t.B then t.A ELSE t.B END) as column
From
   Table t

注意 我之前没有使用普遍的sql,但是快速的googlez显示在9.x版本中添加了case语句?

答案 2 :(得分:1)

你真的想要吗?

SELECT MIN(t.A, t.B) AS SmallestAOrB FROM Table t