[英]SQL query for replacing null values in all columns of a row with values taken from rows of another table with matching ID
[英]sql query for showing all rows of a table based on id with respect to another table
我有两张桌子。
表格:时间表( SID,ORID
)
表格:ORC( ORID,ORNAME
)
我想显示所有ORNAME
是否分配给特定的SID。
预期产量:
SID OR1 OR2 OR3 OR4
1 1
2 3
3 2
以上, SID
1包含ORID
= 1, SID
2包含ORID
= 3, SID
3包含ORID
= 2。
您需要一个动态支点,该支点支持ORNAME
任意数量的可能值:
DECLARE @cols VARCHAR(1000) = STUFF(
(
SELECT ',['+ORNAME+']'
FROM ORC
FOR XML PATH('')
), 1, 1, '')
DECLARE @sql VARCHAR(3000) =
'
SELECT pvt.SID,
'+@cols+'
FROM Schedule a
LEFT JOIN
ORC b ON a.ORID = b.ORID
PIVOT (
MAX(b.ORID) FOR b.ORNAME IN ('+@cols+')
) pvt
ORDER BY pvt.SID'
EXEC(@sql)
这是一个SQL小提琴
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.