我正在尝试从SQL中的字符串中的列返回字段列表。我想我找到了解决这个问题的方法,但是我一直遇到转换错误...就是这个让我陷入困境,我不认为我正在进行转换,而且我不想反正。这是代码:
DECLARE @listStr VARCHAR(MAX)
SELECT @listStr = COALESCE(@listStr+',' , '') + my_column --It's datatype is int.
FROM my_table
WHERE my_id_column = @id
SELECT @listStr
答案 0 :(得分:0)
使用转换功能和您想要的日期格式。
DECLARE @listStr VARCHAR(MAX)
SELECT @listStr = COALESCE(@listStr+',' , '') + convert(varchar(10),my_column)
FROM my_table
WHERE my_id_column = @id
SELECT @listStr
答案 1 :(得分:0)
您需要做的就是将int值从“my_column”转换为文本数据类型,以使SQL Server能够将值与@listStr值连接起来。
此示例将正确的代码说明为您的目的:
DECLARE @Text TABLE
(
LineId int
, LineText nvarchar(70)
)
DECLARE @listStr VARCHAR(MAX)
INSERT INTO @Text VALUES ( 1, 'This')
INSERT INTO @Text VALUES ( 1, 'is')
INSERT INTO @Text VALUES ( 1, 'a')
INSERT INTO @Text VALUES ( 1, 'text')
SELECT @listStr = COALESCE(@listStr + ', ' , '') + ltrim(rtrim(convert(varchar(20),LineText)))
FROM @Text
WHERE LineId = 1
SELECT @listStr
希望它有所帮助。
答案 2 :(得分:0)
只是替换你的查询
declare @pt nvarchar(max)
SET @pt = STUFF(
(
select CAST(',' AS NVARCHAR(MAX)) + cast([tagCloudID] as nvarchar)
from (
SELECT tagCloudFeatureContentID.tagCloudID
FROM tagCloudFeatureContentID
) A
FOR XML PATH('')
), 1, 1, '')
select @pt