Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Разделяне на низ със запетая в SQL Server 2008

Следното ще работи -

DECLARE @A VARCHAR (100)= '4,5,6'
DECLARE @B VARCHAR (100)= 'RXXXXXX'
DECLARE @RETURN_VALUE BIT = 1 --DEFAULT 1


SELECT items
INTO #STRINGS 
FROM dbo.split(@A,',')

IF EXISTS(SELECT 1 FROM #STRINGS S WHERE CHARINDEX(items, @B) > 0)
SET @RETURN_VALUE = 0

PRINT @RETURN_VALUE

DROP TABLE #STRINGS

Можете също да използвате CONTAINS вместо CHARINDEX -

IF EXISTS(SELECT 1 FROM #STRINGS S WHERE CONTAINS(items, @B))
SET @RETURN_VALUE = 0



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Защо индексираните изгледи не могат да имат агрегат MAX()?

  2. Инструкцията UPDATE е в конфликт с ограничението REFERENCE - SQL Server / TSQL урок, част 76

  3. Как да върнете изхода на съхранената процедура в променлива в sql сървър

  4. Изберете ред с максимална стойност в една колона

  5. Динамична SQL грешка при преобразуване на nvarchar в int