CREATE TABLE #a(a varchar(10))
INSERT INTO #a SELECT 'A'
INSERT INTO #a SELECT 'A'
INSERT INTO #a SELECT 'B'
INSERT INTO #a SELECT 'B'
INSERT INTO #a SELECT 'C'
INSERT INTO #a SELECT 'C'
SELECT DISTINCT @t = @t + @comma + a.a ,@comma = ','
FROM #a a
INSERT INTO #a SELECT 'A'
INSERT INTO #a SELECT 'A'
INSERT INTO #a SELECT 'B'
INSERT INTO #a SELECT 'B'
INSERT INTO #a SELECT 'C'
INSERT INTO #a SELECT 'C'
DECLARE @t VARCHAR(8000),@comma varchar(2)
SET @t = ''
SET @comma = ''
--想要得到 a,b,c 怎么才能做到呢?
--下面的语句可以吗?
SELECT DISTINCT @t = @t + @comma + a.a ,@comma = ','
FROM #a a
ORDER BY 1
你先猜猜这个会得到一个什么结果?
他肯定会让你大吃一惊的
这是为什么呢?
那么正确的改怎么写呢?
正确的在这里,o(∩_∩)o 哈哈
SELECT @t = @t + @comma + a.a ,@comma = ','
FROM (
SELECT DISTINCT * FROM #a a
) AS a
ORDER BY a.a