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