これはOracleで行われ、使用しているDBがわかりませんが、うまくいけば、これでアイデアが得られます。
CREATE TABLE article (article_type VARCHAR2(100), article_shade VARCHAR2(50), article_tool VARCHAR2(75));
INSERT INTO article VALUES ('A','Red','FF');
INSERT INTO article VALUES ('A','Orange','KK');
INSERT INTO article VALUES ('B','Red','FF');
COMMIT;
SELECT column_name
, val
FROM (
SELECT DISTINCT 'article_type' column_name
, Article_type val
FROM article
UNION ALL
SELECT DISTINCT 'article_shade' column_name
, Article_Shade val
FROM article
UNION ALL
SELECT DISTINCT 'article_tool' column_name
, Article_tool val
FROM article
) a
出力:
COLUMN_NAME VAL
1 article_type B
2 article_type A
3 article_shade Orange
4 article_shade Red
5 article_tool FF
6 article_tool KK
注:
この結果を3つの別々の列(たとえば、article_type用に1列、article_shade用に1列、article_tool用に1列)で取得しようとしている場合、各列が異なる量の個別の値を持つ可能性があるため、これは無意味です。