1

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

例如:

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

这可能吗?提前致谢!

4

3 回答 3

2

好像你想要

SELECT 
  CASE
    WHEN t.A <= t.B
    THEN t.A 
    ELSE t.B 
  END  AS Smaller
FROM Table t
于 2014-01-21T15:05:15.343 回答
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 显示 case 语句是在 9.x 版本中添加的?

于 2014-01-21T15:02:36.663 回答
1

你真的想要吗?

SELECT MIN(t.A, t.B) AS SmallestAOrB FROM Table t
于 2014-01-21T15:09:50.870 回答