テーブルに、高、中、低の3つの値を持つ列があります。列の値を列に変換する
テーブルのレコードごとに3つのチェックボックス(高、中、低)を表示し、優先度に基づいてチェックボックスをオンにします。
私は私が考えたアプローチがある次の出力ID High Medium Low
---------------------
1 Y
2 Y
3 Y
4 Y
を返すSQLクエリ書きたいと思い
ID Priority
-----------
1 High
2 Low
3 High
4 Medium
:
select
ID,
case
when priority = "High" then "Y"
else "N"
end as High,
case
when priority = "Medium" then "Y"
else "N"
end as Medium,
case
when priority = "Low" then "Y"
else "N"
end as Low;
これは、私は何のおもちゃの問題であるが実際に達成しようとしています。
私の実際のプロジェクトでは、各列ごとに異なる5〜6個のオプションがあり、このアプローチを使用して4個の列があり、クエリが非常に長くなります。ここで
は、彼らが
- ビジネスの成長可能性がありますいくつかの列と、様々な値の一例である - 成長、安定、減少し、NA
- チェックの頻度 - 多くの場合、時には、決して、NA
もっと簡単で効率的な解決法についてアドバイスをしてください。
非常に長くなっています。 – ashish2199
何を試しましたか?ここでcase文を使用してみてください – Simon
@ ashish2199正しいことですが、3つのオプションしかないようですね。それでは、優先度= '高'、次に優先度else null end''の場合は中程度の場合、小文字の場合は... – Simon