row_number 内の新しい列で注文することは可能ですか? 私はこのようなことをしたいと思います:
select text1 + text2 as NEW_TEXT, row_number over (order by NEW_TEXT) from table
しかし、そのようなソートは機能しません (ランダムな結果が得られます)。
row_number 内の新しい列で注文することは可能ですか? 私はこのようなことをしたいと思います:
select text1 + text2 as NEW_TEXT, row_number over (order by NEW_TEXT) from table
しかし、そのようなソートは機能しません (ランダムな結果が得られます)。
式を繰り返す必要がありますtext1 + text2
select text1 + text2 as NEW_TEXT,
row_number() over (order by text1 + text2)
from table
または、段階的に実行します(ここではfooがCTEになる可能性があります)
SELECT
NEW_TEXT,
row_number() over (order by NEW_TEXT)
FROM
(
select text1 + text2 as NEW_TEXT from table
) foo
次のようにサブクエリを使用して実行できます。
select NEW_TEXT, row_number() over (order by NEW_TEXT)
from
(
select Text1 + Text2 as NEW_TEXT
from TestTable
) TempTable
別のオプションは、最初の結果を副選択でラップし、ROW_NUMBER
この副選択に適用することです。
SELECT NEW_TEXT
, ROW_NUMBER() OVER (ORDER BY NEW_TEXT)
FROM (
SELECT text1 + text2 AS NEW_TEXT
FROM [table]
) q
;WITH [table] (text1, text2) AS (
SELECT '1', '1'
UNION ALL SELECT '1', '0'
UNION ALL SELECT '2', '2'
UNION ALL SELECT '2', '1'
)
SELECT NEW_TEXT
, ROW_NUMBER() OVER (ORDER BY NEW_TEXT)
FROM (
SELECT text1 + text2 AS NEW_TEXT
FROM [table]
) q