1 m 2m 1
2 m 3m 2
3 n 33m 1
怎么写得到下面的结果
m 2m,3m
n 33m
SQL code:
select col2,
stuff((select ','+col3 from tb where col2=t.col2 for xml path('')),1,1,'')
from tb t
group by col2
SQL code:
----------------------------------------------------------------------------------
-- Author : htl258(Tony)
-- Date : 2010-05-19 14:03:40
-- Version: Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86)
-- Jul 9 2008 14:43:34
-- Copyright (c) 1988-2008 Microsoft Corporation
-- Developer Edition on Windows NT 5.1 <X86> (Build 2600: Service Pack 3)
-- Blog : http://blog.csdn.net/htl258
----------------------------------------------------------------------------------
--> 生成测试数据表: [tb]
IF OBJECT_ID('[tb]') IS NOT NULL
DROP TABLE [tb]
GO
CREATE TABLE [tb] ([a] [int],[b] [nvarchar](10),[c] [nvarchar](10),[d] [int])
INSERT INTO [tb]
SELECT '1','m','2m','1' UNION ALL
SELECT '2','m','3m','2' UNION ALL
SELECT '3','n','33m','1'
-->SQL查询如下:
SELECT b,
c=STUFF((SELECT ','+c from tb WHERE b=t.b FOR XML PATH('')),1,1,'')
from [tb] t
/*
b c
----------
现在有两张表:文章主表A(articleId,articleTitle),文章评论表B(commentId,articleId,commentTitle)
现在我想实现这样的功能:列出文章列表,其中每篇文章标题下面列出此文章的前2个文章评论,请问sql语句怎么写啊 ......