0

我在用

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。由于重复,这对我的眼睛来说并不好看。

4

2 回答 2

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

祝你好运。

于 2013-01-31T07:36:37.590 回答
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
于 2013-01-31T07:37:57.370 回答