sql >> Database >  >> RDS >> Sqlserver

SQL-parameter splitsen op komma

Je zou iets kunnen proberen als

--Split
DECLARE @textXML XML
DECLARE @data NVARCHAR(MAX), 
        @delimiter NVARCHAR(5)
        
SELECT  @data = 'Main Stream , Premium',
        @delimiter = ','
        
SELECT    @textXML = CAST('<d>' + REPLACE(@data, @delimiter, '</d><d>') + '</d>' AS XML)
SELECT  T.split.value('.', 'nvarchar(max)') AS data
FROM    @textXML.nodes('/d') T(split)

Je kunt dit ofwel opslaan in een tijdelijke tabel, of het gebruiken in de IN-component.

Voor @Hoy commentaar

Je zou kunnen kijken naar nodes() Method (xml Data Type)

Bekijk ook xml-gegevenstypemethoden

Je zou het dan kunnen gebruiken als

select * 
FROM    sales  
where   myCategory IN   (
                            SELECT  T.split.value('.', 'nvarchar(max)')
                            FROM    @textXML.nodes('/d') T(split)
                        )


  1. PHP-code om een ​​MySQL-query naar CSV te converteren

  2. JPA TemporalType.Date geeft verkeerde datum op

  3. Hoe wxImage op te slaan in de database, met behulp van C++?

  4. Verificatie voor een desktop-app