1
ケースステートメントを1より大きい数で記述するにはどうすればよいですか?以下は私がこれまでに持っているものです:無効な識別子を受け取りました。カウント関数付きのケースステートメント
Select *, CASE WHEN COUNT(X.id) >1 THEN X
ELSE isnull END AS testing
from TestTable
ケースステートメントを1より大きい数で記述するにはどうすればよいですか?以下は私がこれまでに持っているものです:無効な識別子を受け取りました。カウント関数付きのケースステートメント
Select *, CASE WHEN COUNT(X.id) >1 THEN X
ELSE isnull END AS testing
from TestTable
コメントありがとうございます。私はOracleに慣れていたので、私の問題を解決することができました。
正しい文は次のようになります。
Select *, CASE WHEN COUNT(X.id) >1 THEN 'X'
ELSE '' END AS testing
from TestTable
Group by *
COUNT自体は、あなたがGROUP BYを使用する必要が集約関数です。 しかし、あなたも分析関数として使用することができます:
SELECT t.*, CASE WHEN COUNT(t.id) OVER(PARTITION BY ...) > 1 THEN 'X'
ELSE '' END AS testing
FROM TEST_TABLE
ストアドプロシージャが関与していることを問題の兆候がないので、私は 'oracle'(と' sql')と 'plsql'タグを置き換えます。単純なSQL –
無効な識別子はどれですか?それを有効にして、残りの問題を処理することができます(集約のために必要なグループを追加するなど) – Donnie
@a_horse_with_no_name教育に感謝します。 –