Sql 将多个整数行转换为In子句的分隔逗号
我能够将loanids的值(整数行)放入逗号分隔的列表中。但是,我无法将此列表转换为用于In子句Sql 将多个整数行转换为In子句的分隔逗号,sql,tsql,ssms,Sql,Tsql,Ssms,我能够将loanids的值(整数行)放入逗号分隔的列表中。但是,我无法将此列表转换为用于In子句 Declare @LoanNums AS NVARCHAR(Max) = '' select DISTINCT @LoanNums = stuff(( select ',' + CONVERT(NVARCHAR(max), u.LoanId) from #tmpLoan u where u.LoanId = u.LoanId
Declare @LoanNums AS NVARCHAR(Max) = ''
select
DISTINCT
@LoanNums =
stuff((
select ',' + CONVERT(NVARCHAR(max), u.LoanId)
from #tmpLoan u
where u.LoanId = u.LoanId
order by u.LoanId
for xml path('')
),1,1,'')
from #tmpLoan
现在输出1322549861613225502132255018249736374249892143
,但是当我将此变量放入IN子句时,它看起来很好
DECLARE @SQL AS NVARCHAR(MAX) = ''
SELECT @SQL = 'Select * from myOtherTable Where LoanId in (''' + @LoanNums + ''')'
如果输出此SQL
Select * from myOtherTable WHERE LoanId in
('132254986,132255002,132255018,249736374,249892143')
我得到了错误
Conversion failed when converting the varchar value
'132254986,132255002,132255018,249736374,249892143' to data type int
如何创建正确格式的逗号分隔列表,以便在in子句中正确使用?不是
Select*from myOtherTable WHERE LoanId in
('132254986132255002132255018249736374249892143')
需要
Select * from myOtherTable WHERE LoanId in
('132254986','132255002','132255018','249736374','249892143');
^ ^ ^ ^ ^ ^ ^ ^
妈的,我需要一些咖啡。我已经修好了