似たような質問の投稿をたくさん読みましたが、まだ答えが見つかりません。私はSQLにかなり慣れていません。SQL Server Express 2008 を使用しています。
私の目標は、類似した名前を持つ複数の列間で異なるすべての値の単一列の結果を取得することです。関連する列は同じ基本名 (接尾辞) を持ち、その後に整数が続きます。列のグループが多数あるため、クエリをハードコーディングしたくありません。
Fruit1 Coating1 Temperature1 Fruit2 Coating2 Temperature2 Fruit3 Coating3 Temperature3
-----------------------------------------------------------------------------------
apple caramel 72.5 pear chocolate 74.1 apple chocolate 98.6
pear caramel 73.3 peach chocolate 42.7 apple chocolate 33.0
したがって、サーバーに返してもらいたいのは、たとえば、いずれか/すべての果物の列で使用されているすべての果物 リンゴ 桃 ナシ
ワイルドカードを使用して列名のリストを取得する方法は既に知っています。
SELECT Column_name AS columnNames
FROM INFORMATION_SCHEMA.COLUMNS
WHERE Column_name LIKE 'Fruit%'
列名が既にわかっている場合、列から個別の値を見つける方法も知っています。
SELECT DISTINCT Fruit FROM(
SELECT Fruit1 as Fruit from FruitBasket
UNION
SELECT Fruit2 as Fruit from FruitBasket
UNION
SELECT Fruit3 as Fruit from FruitBasket)
AS finalOutput
私が知る必要があるのは、最初のクエリの列名の結果を 2 番目の UNION パラメータで使用する方法です。FOR ループなどを使用する必要がありますか?
ありがとう!