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
本文探讨了SQL中创建表、插入数据以及通过字符串拼接实现特定需求的方法。包括如何使用SELECT语句进行字符串拼接,以及在特定场景下可能遇到的坑点和解决策略。
1万+

被折叠的 条评论
为什么被折叠?



