1

SQL Plus を使用した "case" ステートメントの適切な構文を教えてくれる人はいますか?

Select 
sum(case "REQUEST AGE" when >= 60 then 1 else 0) as "60+ Days",
sum(case "REQUEST AGE"  when >= 30 and case when "REQUEST AGE" < 60 then 1 else 0) as "30-    60 Days",
sum (case "REQUEST AGE" when < 30 then 1 else 0) as "Less Than 30 Days",
"SECTOR"
FROM Schema.APPDATA
Where Schema.APPDATA."SECTOR" like '%X%'

私は比較的 SQL に不慣れで、そのようなクエリを書いたことはありません。コラムリクエスト年齢が60歳以上、30歳以上60歳未満、30歳未満の場合は、コラム部門ごとにグループ化された3つのコラムとして合計してほしい

4

2 に答える 2

1

CASEステートメントは .END内で終了する必要があります()CASE WHEN <condition> THENここで構文を使用できます。

Select 
  sum(case when "REQUEST AGE" >= 60 then 1 else 0 END) as "60+ Days",
  /* And in here, don't repeat the CASE keyword. Both parts of the expression are connected by AND */
  sum(case when "REQUEST AGE" >= 30 and "REQUEST AGE" < 60 then 1 else 0 END) as "30-    60 Days",
  sum (case when "REQUEST AGE" < 30 then 1 else 0 END) as "Less Than 30 Days",
  "SECTOR"
FROM Schema.APPDATA
Where Schema.APPDATA."SECTOR" like '%X%'
于 2012-12-10T21:26:00.040 に答える
1

CASE WHEN [expression]... THEN次の代わりに使用する必要がありますCASE [variable] WHEN [value] THEN ...

Select 
sum(case WHEN "REQUEST AGE" >= 60 then 1 else 0 end) as "60+ Days",
....

また、あなたのケースでは、まったく必要ないcountよりも適切なようです。sumelse

于 2012-12-10T21:27:05.907 に答える