2016-03-21 15 views
1

ケースステートメントを1より大きい数で記述するにはどうすればよいですか?以下は私がこれまでに持っているものです:無効な識別子を受け取りました。カウント関数付きのケースステートメント

Select *, CASE WHEN COUNT(X.id) >1 THEN X 
    ELSE isnull END AS testing 
from TestTable 
+0

ストアドプロシージャが関与していることを問題の兆候がないので、私は 'oracle'(と' sql')と 'plsql'タグを置き換えます。単純なSQL –

+0

無効な識別子はどれですか?それを有効にして、残りの問題を処理することができます(集約のために必要なグループを追加するなど) – Donnie

+0

@a_horse_with_no_name教育に感謝します。 –

答えて

0

コメントありがとうございます。私はOracleに慣れていたので、私の問題を解決することができました。

正しい文は次のようになります。

Select *, CASE WHEN COUNT(X.id) >1 THEN 'X' 
    ELSE '' END AS testing 
from TestTable 

Group by * 
0

COUNT自体は、あなたがGROUP BYを使用する必要が集約関数です。 しかし、あなたも分析関数として使用することができます:

SELECT t.*, CASE WHEN COUNT(t.id) OVER(PARTITION BY ...) > 1 THEN 'X' 
ELSE '' END AS testing 
FROM TEST_TABLE