SQL Server 2016数据类型转换错误
我有以下问题。由于某种原因,我使用多个SELECT语句作为我使用的工具,需要在第一行中使用FROM子句和一个SELECT值 文档ID是一个整型列。我需要文档ID作为逗号分隔的值,作为此查询的输出。(例如123477866475835) 问题是我遇到了以下错误。有人能帮忙吗 将varchar值“”转换为int数据类型时,转换失败。 我读了一些关于使用CAST转换为NVARCHAR的帖子,但是我在做同样的事情时遇到了语法错误。具体在哪里可以应用SQL Server 2016数据类型转换错误,sql,sql-server,Sql,Sql Server,我有以下问题。由于某种原因,我使用多个SELECT语句作为我使用的工具,需要在第一行中使用FROM子句和一个SELECT值 文档ID是一个整型列。我需要文档ID作为逗号分隔的值,作为此查询的输出。(例如123477866475835) 问题是我遇到了以下错误。有人能帮忙吗 将varchar值“”转换为int数据类型时,转换失败。 我读了一些关于使用CAST转换为NVARCHAR的帖子,但是我在做同样的事情时遇到了语法错误。具体在哪里可以应用 SELECT DOCUMENT_ID FROM ( S
SELECT DOCUMENT_ID FROM (
SELECT STUFF
(
(
SELECT ',' + em.DOCUMENT_ID
FROM(
SELECT distinct a.DOCUMENT_ID AS DOCUMENT_ID FROM A_DOCUMENT a
inner join PRICE_RECORD wk ON a.DOCUMENT_ID = wk.DOCUMENT_ID
WHERE a.APPROVAL_STATUS = 'Submitted'
) em
ORDER BY em.DOCUMENT_ID FOR XML PATH('')
),
1, 1, '') AS DOCUMENT_ID
) AS Output
谢谢。如果
DOCUMENT\u ID
是int
,则将'、'+em.DOCUMENT\u ID
替换为以下内容之一:
CONCAT(',', em.DOCUMENT_ID) --SQL Server 2012+
',' + CONVERT(varchar(10),em.DOCUMENT_ID)
--Or, if you prefer CAST
',' + CAST(em.DOCUMENT_ID AS varchar(10))
int
的值高于varchar
,因此您的逗号(,“
)被隐式转换为int
,这导致了转换错误。如果文档ID
是int
,则将,“+em.DOCUMENT ID
替换为以下内容之一:
CONCAT(',', em.DOCUMENT_ID) --SQL Server 2012+
',' + CONVERT(varchar(10),em.DOCUMENT_ID)
--Or, if you prefer CAST
',' + CAST(em.DOCUMENT_ID AS varchar(10))
int
的值高于varchar
,因此您的逗号(,“
)被隐式转换为int
,这导致了转换错误。非常感谢您。感谢您的快速帮助。我的代码现在可以用了。非常感谢你。感谢您的快速帮助。我的代码现在可以工作了。