質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.30%
SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

解決済

1回答

919閲覧

SQLでテーブルからカラム名を取得し別のテーブルの取得したカラム名の値を取得する

wing-1216

総合スコア19

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

0グッド

0クリップ

投稿2023/07/07 09:20

編集2023/07/07 09:29

実現したいこと

table1

idtable2_columnName
01column1
02column2
03column3

table2

namecolumn1column2column3
name102030

上記のようなテーブル(必要部分のみ記述)が存在しており、
table1から[table2_columnName]の値を取得してtable2から取得したカラム名の値を取得したい。

前提

SQL Server 2019

発生している問題・エラーメッセージ

これをSQLのみで実行したいのですが可能なのでしょうか?
webでうまく指定して検索できなかったのでこちらで質問しております。

イメージとしては下記のような形です。

SQL

1SELECT ( 2 SELECT table2_columnName 3 FROM table1 4 WHERE id = '01' 5 ) 6FROM table2

ここで副問い合わせで取得した内容(column1)を文字列として表示するのではなくカラム名としてSQLを実行し、
table2のcolumn1の値である10を取得したいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

logres_Fan

2023/07/07 09:46

table2をname,column_id,valueに変更すれば?
wing-1216

2023/07/08 09:32

コメントありがとうございます。 現行のシステム改修で変更は厳しいんですよね… 今一度検討してみます。
logres_Fan

2023/07/08 10:13

欠陥システムは改修したらダメです。改修したから壊れたと難癖つけられないように。 現行システムの設計ミスを指摘して全部作り直す事が出来ないなら、関わらずに撤退するしかないですね。
wing-1216

2023/07/10 00:11

このテーブルはある一つのデータに対する複数の値を保持するためのテーブルです。 今回の案件は既存システムの機能追加・改修作業で、 機能追加の方法が深く練られていないだけでこのテーブルが欠陥というわけではないと思います。 (テーブル定義だけみて欠陥システムと決めつけられるのも…) 何はともあれ機能追加の仕様をもう一度会議で検討しようと思います。 ありがとうございました。
guest

回答1

0

ベストアンサー

プロシージャなど特別な処理が必要になります

投稿2023/07/07 09:54

yambejp

総合スコア117755

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

wing-1216

2023/07/08 09:37

回答ありがとうございます。 現行システムがストアドプロシージャを使用していないシステムでそちらに合わせないといけないんですよね… その辺りも含めて再度話し合おうと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問