sql >> Databasteknik >  >> RDS >> Sqlserver

Dela sql-parameter på kommatecken

Du kan prova något liknande

--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)

Du kan antingen lagra detta i en temporär tabell eller använda det i IN-satsen.

För @Hoy kommentar

Du kan titta på nodes() Method (xml Data Type)

Ta också en titt på xml Data Type Methods

Du kan sedan använda den som

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


  1. Skapa ett formulär i APEX för att ställa in variabler i en fråga för en interaktiv rapport

  2. Hur man hanterar Clob Data Type i Excel från SQL Query

  3. Fortsätter Infogar i Oracle när undantag höjs

  4. Konvertera en sträng till en mySql DECIMAL-typ