Sql 将多列选择为一列
我希望能够从一个表中获取三列,并将它们放入另一个表中的单个列中 所以我想做这个查询Sql 将多列选择为一列,sql,Sql,我希望能够从一个表中获取三列,并将它们放入另一个表中的单个列中 所以我想做这个查询 SELECT Ref.Gender_Id, NHS1.Name, NHS2.Name, NHS3.Name FROM DDS.Referrals Ref LEFT JOIN DDS.NHSCommunicationNeed NHS1 ON NHS1.Id = REF.NHSCommunicationNeed1_Id LEFT JOIN DDS.NHSCommunicationNeed NHS2
SELECT Ref.Gender_Id,
NHS1.Name,
NHS2.Name,
NHS3.Name
FROM DDS.Referrals Ref
LEFT JOIN DDS.NHSCommunicationNeed NHS1 ON NHS1.Id = REF.NHSCommunicationNeed1_Id
LEFT JOIN DDS.NHSCommunicationNeed NHS2 ON NHS2.Id = REF.NHSCommunicationNeed2_Id
LEFT JOIN DDS.NHSCommunicationNeed NHS3 ON NHS3.Id = REF.NHSCommunicationNeed3_Id
然后像这样把它插入一个表中
#Tbl(GenderId, Value)
连接名称。ANSI SQL使用|
,但有些产品使用+
或concat()
使用coalesce()
避免空值。(如果其中一个参数为null,ANSI SQL的连接将返回null。)(但是,某些DBM在连接null值时仍会返回一个值,因此您可以跳过合并。)基本语法:
INSERT INTO Tbl(Gender_Id,Value)
SELECT Ref.Gender_Id,
CONCAT(NHS1.Name,NHS2.Name,NHS3.Name) -- Check NOTE
FROM DDS.Referrals Ref
LEFT JOIN DDS.NHSCommunicationNeed NHS1 ON NHS1.Id = REF.NHSCommunicationNeed1_Id
LEFT JOIN DDS.NHSCommunicationNeed NHS2 ON NHS2.Id = REF.NHSCommunicationNeed2_Id
LEFT JOIN DDS.NHSCommunicationNeed NHS3 ON NHS3.Id = REF.NHSCommunicationNeed3_Id
注意:CONCAT
(连接两列或更多列)在不同的DBMS中处理方式不同。由于您没有提到正在使用的DBMS,因此您必须考虑到这一点。您使用的是哪种产品?博士后?神谕“SQL”只是一种查询语言,而不是特定数据库产品的名称。
INSERT INTO Tbl(Gender_Id,Value)
SELECT Ref.Gender_Id,
CONCAT(NHS1.Name,NHS2.Name,NHS3.Name) -- Check NOTE
FROM DDS.Referrals Ref
LEFT JOIN DDS.NHSCommunicationNeed NHS1 ON NHS1.Id = REF.NHSCommunicationNeed1_Id
LEFT JOIN DDS.NHSCommunicationNeed NHS2 ON NHS2.Id = REF.NHSCommunicationNeed2_Id
LEFT JOIN DDS.NHSCommunicationNeed NHS3 ON NHS3.Id = REF.NHSCommunicationNeed3_Id