クロス参入のアプローチ dnoethが言ったことに加えて、まずnumber_tableがあることを確認したいと思うでしょう。これはあなたが参加するテーブルになります。この場合、私は関数の一部ではありません。これは単なる列名です。 ColXという名前を付けることもできます。あなたの例では、6列あるので、6行、1-6を挿入しています。しかし、このテーブルのより大きなバージョンを保つことは便利かもしれません。
CREATE TABLE NUMBERS_TABLE
(i INT);
INSERT INTO NUMBERS_TABLE VALUES (1);
INSERT INTO NUMBERS_TABLE VALUES (2);
INSERT INTO NUMBERS_TABLE VALUES (3);
INSERT INTO NUMBERS_TABLE VALUES (4);
INSERT INTO NUMBERS_TABLE VALUES (5);
INSERT INTO NUMBERS_TABLE VALUES (6);
注:クロス結合によってデカルト積が作成されるため、注意が必要です。
WITH CTE AS (SELECT COL1, COL2, COL3, COL4, COL5, COL6 FROM ORIGINAL_TABLE)
SELECT
,CASE B.i
WHEN 1 THEN 'COL1'
WHEN 2 THEN 'COL2'
WHEN 3 THEN 'COL3'
WHEN 4 THEN 'COL4'
WHEN 5 THEN 'COL5'
WHEN 6 THEN 'COL6'
END AS UNPIVOTED_COLUMN_NAMES
,CASE B.i
WHEN 1 THEN A.COL1
WHEN 2 THEN A.COL2
WHEN 3 THEN A.COL3
WHEN 4 THEN A.COL4
WHEN 5 THEN A.COL5
WHEN 6 THEN A.COL6
END AS COLUMN_A
FROM CTE A CROSS JOIN
(SELECT i FROM NUMBERS_TABLE WHERE i in ('1','2','3','4','5','6')) B
ようこそスタックオーバーフロー!質問を編集して[これまでに試したこと](http://whathaveyoutried.com)を表示してください。問題のあるコードの[mcve]を含める必要があります。次に、特定の問題を解決するために役立つことができます。 [ask]も読んでください。 –