sql >> Databáze >  >> RDS >> Sqlserver

Jak používat předat řetězec oddělený čárkami v dynamickém dotazu v SQL

Když vytváříte dynamické SQL, jako je tento, musíte svůj parametr zabalit do dvojitých uvozovek ''

declare @ProductIDs varchar(11)
declare @SQL varchar(max)

set @ProductIDs='1,2,3,4'
declare @query varchar(max)
--set @query= @ProductIDs +','[email protected]

SELECT @SQL = 'SELECT val FROM dbo.[fnDelimitedStringToTable]('''+ @ProductIDs +''' , '','')'

Exec(@SQL)

Tímto způsobem bude příkaz SQL:

SELECT val FROM dbo.[fnDelimitedStringToTable]('1,2,3,4' , '','')

a ne:

SELECT val FROM dbo.[fnDelimitedStringToTable](1,2,3,4 , '','')


  1. SQL Server PRO KAŽDOU smyčku

  2. Webinář:Nové funkce v PostgreSQL 11 [Následovat]

  3. Nelze vložit GeomFromText('POINT(..)') do MySQL

  4. Výsledky SSMS do mřížky - CRLF není zachováno při kopírování/vkládání - nějaké lepší techniky?