プロが教えるわが家の防犯対策術!

上のようなテーブルから、色カラムにどんな要素があるか抜き出したいです。
どのようなSQLを書けば良いか教えてください。

SELECT 色
FROM テーブル名;
と書けば欲しい出力結果のようになりますか?
今試せないのですが、すぐに必要になるので教えてください。

【テーブル】
番号│色│名前
001│赤│リンゴ
002│黄│バナナ
003│橙│オレンジ
004│黄│レモン

【欲しい出力結果】
│色│
│赤│
│黄│
│橙│

A 回答 (3件)

順序保証する必要がないなら、次のようなSQLです。



SELECT DISTINCT 色 FROM テーブル名

順序保証が必要で番号順(色毎に最小の番号)なら、次のようなSQLです。

SELECT 色
FROM(
SELECT 色,MIN(番号) AS 最小番号
FROM テーブル名
GROUP BY 色
) AS x
ORDER BY 最小番号
    • good
    • 0

なりません。



SELECT DISTINCT 色 FROM テーブル名;

などとすると、色カラムの重複が解消されて「欲しい出力結果」のようになると思います。
    • good
    • 0

はい。

仰るとおりだと思います。例えば...

> select * from テーブル名;
time | code_u | code_v | code_w | code_x | code_y | code_z | code_m2 | code_m3 | code_m4 | code_m5
-------------------------+--------+--------+--------+--------+--------+--------+---------+---------+---------+---------
2022-09-21 16:34:04.042 | | | | 1000 | | | | | |
2022-09-21 16:34:04.477 | | | | 1000 | | | | | |
2022-09-21 16:34:04.895 | | | | 1000 | | | | | |
2022-09-21 16:34:05.39 | | | | 1000 | | | | | |

なるテーブルが存在するとして...

> select code_x from テーブル名;
code_x
--------
1000
1000
1000
1000
1000
1000
1000
1000
1000
1000
1000
1000
| | | |
| | | |

と表示されます。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!