Это было сделано на Oracle, не уверен, что DB вас есть используя, но, надеюсь, это g у вас есть идея.
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, один для article_shade, и один для article_tool) , что является бессмысленным, поскольку каждый столбец может иметь разные количества различных значений.
Каков ваш ожидаемый результат? – Lamak
То, что вы ожидаете, невозможно комбинировать в одном наборе результатов. Вы можете выполнить три запроса: SELECT DISTINCT Article_type FROM ...; SELECT DISTINCT Article_Shade FROM ..., SELECT DISTINCT Article_tool FROM ...; –
можете ли вы поместить ожидаемый тип в таблицу с тремя столбцами? В противном случае вы просматриваете три запроса (один/столбец), чтобы получить только отдельные значения. –