【发布时间】:2019-01-30 16:46:13
【问题描述】:
我已使用以下方法将 3 个表中的选择列连接到一个新表中:
SELECT A.ExternalID, A.UserDefinedXml.value('(Skin_Sheet/@Label)[1]', 'varchar(3)') AS SS, A.ServiceSiteUid, A.LastModifiedDate, A.PersonUid,
B.FirstName, B.LastName, B.PersonUid,
C.Name
FROM Patient A
INNER JOIN Person B ON B.PersonUid = A.PersonUid
INNER JOIN ListServiceSite C ON C.ServiceSiteUid = A.ServiceSiteUid
WHERE SS IS NOT NULL
ORDER By LastModifiedDate;
这一切都有效,但我不确定如何引用从 XML 中提取的数据创建的列 SS,因此我只能选择值为“是”或“否”的观察值。在 R 中,我会创建一个新对象,但如果我不指定表名是什么,我不确定 SQL 如何存储这个新表。
旁注,我确实尝试将其插入到新表中,但 SQL 不允许我这样做,因为出于某种原因,连接导致 PersonUid 被复制。
提前感谢您,我对 SQL 非常非常陌生,并且正在努力学习。
【问题讨论】:
-
这只是一个查询。您没有将数据存储在任何地方。您可以
SELECT ... INTO ...从数据中创建一个表,然后引用该表。如果您在使用完数据后不需要保留数据,也可以使用临时表,或者如果您只需要单个查询的值,则可以使用子查询或 CTE。 -
请阅读minimal reproducible example。也请使用文本,而不是图像/链接,用于文本,包括表格和 ERD。
标签: sql-server join temp-tables