0

私は使っている

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

ここで、aliasname2 に同じ値を使用したいと考えています。同じ列に複数のエイリアスを使用できないことを読みました。

また、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ます。繰り返しのせいで、私の目にはよく見えません。

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 に答える