ここに示す例を使用して、一時テーブルに値を設定しようとしています: SQL 出力: 一時出力列を作成することは可能ですか?
最初のテーブルを作成しました。ここでは、列名を使用して、値「operdesc」の新しい列の母集団を作成しています。
これは、必要な COLUMN_NAME 値を取得する作業テーブル クエリです。一時列「OPERAND」を追加したい:
SELECT COLUMN_NAME, DATA_TYPE, 'OPERAND' AS TempField,
CASE WHEN COLUMN_NAME = 'Street' THEN '=' WHEN COLUMN_NAME = 'Town' THEN 'CW' END AS OPERAND FROM INFORMATION_SCHEMA.COLUMNS WHERE (TABLE_SCHEMA = 'dbo') AND (TABLE_NAME = 'Customers') ORDER BY COLUMN_NAME
ただし、さらに一歩進んで、一時結合を使用して単純化したいと考えています。次の例に従いました: SQL 出力: 一時的な出力列を作成することは可能ですか? しかし、私のスクリプトにハングアップしています。これは私が持っているものですが、うまくいきません。
WITH XOperLU (xopername, xoperdesc)
AS
(
SELECT xopername, CAST(xoperdesc AS VARCHAR(20))
FROM (
VALUES ('Street', 'SS'),
('Town', 'TW')
) AS XOperLU (xopername, xoperdesc)
) SELECT COLUMN_NAME as T1.COLUMN_NAME, DATA_TYPE as T1.DATA_TYPE, S1.xoperdesc AS Description FROM INFORMATION_SCHEMA.COLUMNS AS T1 WHERE (TABLE_SCHEMA = 'dbo') AND (TABLE_NAME = 'Clients')
INNER JOIN XOperLU AS S1
ON S1.xopername = T1.COLUMN_NAME;
「Clients」テーブルはビューです。
よろしくお願いします!