返回SQL中的值列表,得到转换错误?

时间:2014-03-07 17:21:51

标签: sql sql-server list

我正在尝试从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

3 个答案:

答案 0 :(得分:0)

使用转换功能和您想要的日期格式。

SQL DateTime Format Function

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