我正在使用SQL Server 2014,我有两个表:
number id
------------------
36-23 1
36-23 2
id value
------------------
1 asia
2 europe
number
列的类型为varchar
。我想写一个查询来返回以下结果:
number Name
---------------------------
36-23 asia,europe
我想知道如何借助SQL Server中的查询或函数来做到这一点。
答案 0 :(得分:0)
我认为使用STUFF是最简单的方法。
CREATE TABLE tableID
([number] varchar(50), [id] int)
;
INSERT INTO tableID
([number], [id])
VALUES
('36-23', 1),
('36-23', 2)
;
CREATE TABLE tableLoc
([id] int, [value] varchar(50))
;
INSERT INTO tableLoc
([id], [value])
VALUES
(1, 'asia'),
(2, 'europe')
;
SELECT tableID.number, tableLoc.value INTO temp1
FROM tableID INNER JOIN tableLoc ON tableID.id = tableLoc.id;
SELECT *, STUFF((
SELECT DISTINCT ', ' + value
FROM temp1
WHERE number = t.number
FOR XML PATH('')), 1, 2, '')
FROM (
SELECT DISTINCT number
FROM temp1
) t