1

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

それが理にかなっていることを願っています

4

3 に答える 3

4

そのために、ネストされたクエリまたは共通テーブル式 (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
于 2013-10-23T02:10:55.867 に答える
3

私はおそらくこれを行うでしょう:

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
于 2013-10-23T02:09:03.950 に答える
0

最も簡単な方法はこれを行うことです:

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 の計算から構成される派生テーブルが作成され、それらを簡単に参照して合計することができます。

于 2013-10-23T02:08:47.150 に答える