1

テーブル名: SimpleTable

| A | B | C | D | E | F | 
+----------------------+ 
| 5 | 3 | 5 | 9 | 6 | 3 | 
| 7 | 5 | 0 | 0 | 9 | 2 | 
| 1 | 6 | 1 | 2 | 4 | 5 | 
| 2 | 9 | 4 | 4 | 9 | 0 | 
| 9 | 2 | 3 | 5 | 2 | 8 | 

このような単純なテーブルがあります。本質的にやりたいことは、この単純なテーブルで選択を行うことですが、結果には追加のダミー列があります (簡単にするために「ダミー」と呼ばれます)。このダミー列は、他の列の値を使用して作成されます。整数が 7 以上の場合、列のタイトルが含まれます。たとえば、1 行目のダミーは「D」と表示されますが、2 行目は「A/E」と表示されます。このロジックが SQL でどのように実現されているかはわかりませんが、助けていただければ幸いです。

4

2 に答える 2

3

これが SQL Server の場合、

select *,
       stuff (case when a >= 7 then '/A' else '' end
            + case when b >= 7 then '/B' else '' end
            + case when c >= 7 then '/C' else '' end
            + case when d >= 7 then '/D' else '' end
            + case when e >= 7 then '/E' else '' end
            + case when f >= 7 then '/F' else '' end,
         1, 1, '') dummy
  from SimpleTable

7 列以上の列がない場合、ダミーは null になります。

于 2012-07-24T07:44:01.647 に答える
0
SELECT A, B, C, D, E, F,
CASE 
 WHEN A >= 7 THEN 'A/' 
 ELSE '' END
+
 CASE 
 WHEN B >= 7 THEN 'B/' 
 ELSE '' END
+
CASE 
 WHEN C >= 7 THEN 'C/' 
 ELSE '' END
+
CASE 
 WHEN D >= 7 THEN 'D/' 
 ELSE '' END
+
CASE 
 WHEN E >= 7 THEN 'E/' 
 ELSE '' END
+
CASE 
 WHEN F >= 7 THEN 'F' 
 ELSE '' END

AS Dummy
FROM SimpleTable
于 2012-07-24T07:40:26.093 に答える