在sql的select部分中为多个列使用相同的值

时间:2013-01-31 07:31:42

标签: sql oracle case alias

我正在使用

case 
when condition1 then ....
when condition2 then ....
when condition3 then ....
end aliasname1

现在我想为aliasname2使用相同的值。我读到我们不能为同一列使用多个别名。

此外,我不想在from子句中使用子查询。

因此,如果case返回值,假设10,我希望将相同的值分配给aliasname1aliasname2

我该怎么做?

更新:目前我正在使用它

case 
when condition1 then ....
when condition2 then ....
when condition3 then ....
end aliasname1
case 
when condition1 then ....
when condition2 then ....
when condition3 then ....
end aliasname2

aliasname2使用相同的案例(复制粘贴)。由于重复,这对我的眼睛看起来并不好看。

2 个答案:

答案 0 :(得分:1)

如果我理解您的问题,您可以使用具有不同别名的相同列。

这很好用:

SELECT Field as Alias1, Field as Alias2 
FROM TABLE

以下是SQL Fiddle向您展示。

要回答你的问题,

SELECT 
   CASE WHEN <SOME CRITERIA> THEN 10 END as Alias1,
   CASE WHEN <SOME CRITERIA> THEN 10 END as Alias2
...
祝你好运。

答案 1 :(得分:1)

复制案例构造

select case 
when condition1 then ....
when condition2 then ....
when condition3 then ....
end aliasname1,
case 
when condition1 then ....
when condition2 then ....
when condition3 then ....
end aliasname2
...

select aliasname1, aliasname1 as aliasname2
from (
  select
    case 
    when condition1 then ....
    when condition2 then ....
    when condition3 then ....
    end aliasname1
    ...
) x