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

在sql的select部分中对多个列使用相同的值,sql,oracle,case,alias,Sql,Oracle,Case,Alias,我正在使用 case when condition1 then .... when condition2 then .... when condition3 then .... end aliasname1 现在我想对别名2使用相同的值。我听说我们不能对同一列使用多个别名 另外,我不想在from子句中使用子查询 所以,如果case返回值,假设10,我希望将相同的值分配给aliasname1和aliasname2 我该怎么做 更新:目前我正在这样使用它 case when condition

我正在使用

case 
when condition1 then ....
when condition2 then ....
when condition3 then ....
end aliasname1
现在我想对别名2使用相同的值。我听说我们不能对同一列使用多个别名

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

所以,如果case返回值,假设
10
,我希望将相同的值分配给
aliasname1
aliasname2

我该怎么做

更新:目前我正在这样使用它

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
,使用相同的大小写(复制粘贴)。因为重复,所以在我看来不太好

如果我理解你的问题,你可以用不同的别名使用同一列

这很好:

SELECT Field as Alias1, Field as Alias2 
FROM TABLE
这是给你看的照片

回答你的问题,

SELECT 
   CASE WHEN <SOME CRITERIA> THEN 10 END as Alias1,
   CASE WHEN <SOME CRITERIA> THEN 10 END as Alias2
...
选择
如果10以别名1结尾,
当10结束为别名2时的情况
...

祝你好运。

复制你的案例结构

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
...


事实上,这正是我想要避免的(这就是我现在正在做的,使用case两次。仍然谢谢。你也可以创建一个函数。这就是我现在正在做的,使用case两次。无论如何,谢谢。
select aliasname1, aliasname1 as aliasname2
from (
  select
    case 
    when condition1 then ....
    when condition2 then ....
    when condition3 then ....
    end aliasname1
    ...
) x