MS SQL 2012 の使用
私は何かをしたい
select a, b, c, a+b+c d
ただし、a、b、c は複雑な計算列です。簡単な例を見てみましょう
select case when x > 4 then 4 else x end a,
( select count(*) somethingElse) b,
a + b c
order by c
それが理にかなっていることを願っています
MS SQL 2012 の使用
私は何かをしたい
select a, b, c, a+b+c d
ただし、a、b、c は複雑な計算列です。簡単な例を見てみましょう
select case when x > 4 then 4 else x end a,
( select count(*) somethingElse) b,
a + b c
order by c
それが理にかなっていることを願っています
そのために、ネストされたクエリまたは共通テーブル式 (CTE) を使用できます。CTE 構文は少しすっきりしています。次のとおりです。
WITH CTE (a, b)
AS
(
select
case when x > 4 then 4 else x end a,
count(*) somethingElse b
from my_table
)
SELECT
a, b, (a+b) as c
FROM CTE
ORDER BY c
私はおそらくこれを行うでしょう:
SELECT
sub.a,
sub.b,
(sub.a + sub.b) as c,
FROM
(
select
case when x > 4 then 4 else x end a,
(select count(*) somethingElse) b
FROM MyTable
) sub
ORDER BY c
最も簡単な方法はこれを行うことです:
select a,b,c,a+b+c d
from (select <whatever your calcs are for a,b,c>) x
order by c
それだけで、a、b、c の計算から構成される派生テーブルが作成され、それらを簡単に参照して合計することができます。