sql >> Database teknologi >  >> RDS >> Sqlserver

Opdel sql-parameter på komma

Du kunne prøve noget lignende

--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 enten gemme dette i en midlertidig tabel eller bruge det i IN-klausulen.

Til @Hoy kommentar

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

Tag også et kig på xml-datatypemetoder

Du kan derefter bruge det som

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


  1. Find og fjern ikke-ASCII-tegn fra en Oracle Varchar2

  2. Hvordan kan jeg skrive SQL til en tabel, der deler det samme navn som et beskyttet søgeord i MySql?

  3. Brug af sqlalchemy til at forespørge ved hjælp af flere kolonner hvor i klausul

  4. Sådan importeres formfil til MySQL