sql server 使用存储过程将一列值拼成字符串

例如:
keywords
牛仔服

毛皮
医药

返回的结果是
keywords
牛仔服 毛皮 医药

中间用空格隔开。

求高手
需要使用存储过程
最新回答
见过千万人

2024-05-01 01:27:16

create PROCEDURE UP_GETVALUE
AS
DECLARE @value VARCHAR(100), @tmp VARCHAR(100)   

declare cursorA cursor for select KEYWORDS FROM
 (SELECT '牛仔服' AS KEYWORDS UNION ALL SELECT '毛皮' UNION ALL SELECT '医药') AS aa
open cursorA
fetch next from cursorA into @tmp
SET @value = ''
while (@@fetch_status = 0)
BEGIN
 SET @value = @value + @tmp + ' '
 fetch next from cursorA into @tmp
END
SELECT rtrim(@value) AS keywords

close cursorA
deallocate cursorA

--测试
--EXEC up_getvalue

 

--结果

追问
大侠,其实那些牛仔服,毛皮,医药也是查出来的,

具体需求是:
向存储过程传递一个参数,比如”牛仔服是织品毛皮看机械医药“,从关键字表中查询参数含有的关键字 “牛仔服,毛皮,医药”,再将这些关键字用空格连接返回

帅哥,求解啊
追答
这个 (SELECT '牛仔服' AS KEYWORDS UNION ALL SELECT '毛皮' UNION ALL SELECT '医药') AS aa是测试用的啊。可以写你自己的表
梦散蝶逝

2024-05-01 09:02:00

SELECT STUFF((SELECT ' ' + LTRIM(RTRIM(keywords))
FROM [表]
FOR
XML PATH('')), 1, 1, '') AS b