Sql 从表1中选择数据,当表1的列名与表2中列1的行值匹配时,获取表2的交叉引用值
表1Sql 从表1中选择数据,当表1的列名与表2中列1的行值匹配时,获取表2的交叉引用值,sql,oracle11g,Sql,Oracle11g,表1 id | check | status 1 | abc | 1 2 | def | 3 表2 Column1 | rawvalue | to_be_updated_value| check | abc | new status | 3 | 3333 请帮助我编写select语句,以便在Oracle11g中获得以下输出 预期产出: id | ch
id | check | status
1 | abc | 1
2 | def | 3
表2
Column1 | rawvalue | to_be_updated_value|
check | abc | new
status | 3 | 3333
请帮助我编写select语句,以便在Oracle11g中获得以下输出
预期产出:
id | check | status
1 | **new** | 1
2 | def | **3333**
这是我认为您要做的第一件事(适用于SQL Server):
选择ISC.COLUMN\u名称,T2*
FROM.INFORMATION\u SCHEMA.COLUMNS ISC
内连接表2 T2
在T2.Column1=ISC.COLUMN\u NAME上
其中ISC.TABLE_NAME=N'Table1';
请解释您想要实现的目标。您描述了数据,但您想要什么输出?你试过什么?(将问题重命名为描述什么不起作用,而不是你的问题是什么)同样,请标记您正在使用的RDBMS。您好,当table1的列名与table2的column1匹配时,我希望“to_be_updated_value”数据代替原始数据,并且该列的相应值应与RawValues匹配,用更简单的话来说,我希望select语句在table2上查找更新的数据代替原始数据原始数据。。(我是sql新手,我使用Toad)
SELECT ISC.COLUMN_NAME, T2.*
FROM <YourDatabase>.INFORMATION_SCHEMA.COLUMNS ISC
INNER JOIN Table2 T2
ON T2.Column1 = ISC.COLUMN_NAME
WHERE ISC.TABLE_NAME = N'Table1';