有桌子Clients
.
PK LastName Name Address
1 Vidal Arturo St....
2 Lavezzi Ezequiel St....
3 Cuadrado Guillermo St....
我想得到:
通过以下查询,我可以得到前四列,但是如何将其与表数据链接起来?
SELECT TAB.object_id OBEJCTID, TAB.name TABLENAME, COL.column_id COLUMNID, COL.name FROM sys.tables TAB
JOIN SYS.columns COL
ON TAB.object_id = COL.object_id
WHERE TAB.object_id = 25659888;
你需要unpivot
数据。
尝试这样的事情
;WITH cte
AS (SELECT column_name,
table_value
FROM clients
CROSS apply (VALUES ('pk',CONVERT(varchar(20),PK)),
('LastName',lastname),
('Name', NAME),
('Address',address)) cs(column_name, table_value)),
yourquery
AS (SELECT TAB.object_id OBEJCTID,
TAB.NAME TABLENAME,
COL.column_id COLUMNID,
COL.NAME
FROM sys.tables TAB
JOIN sys.columns COL
ON TAB.object_id = COL.object_id
WHERE TAB.object_id = 25659888)
SELECT *
FROM cte c
JOIN yourquery y
ON y.NAME = c.column_name
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)