Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

अल्पविराम पर विभाजित sql पैरामीटर

आप कुछ इस तरह की कोशिश कर सकते हैं

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

आप इसे या तो एक अस्थायी तालिका में संग्रहीत कर सकते हैं, या इसे IN खंड में उपयोग कर सकते हैं।

@Hoy कमेंट के लिए

आप नोड्स() विधि (xml डेटा प्रकार) देख सकते हैं।

साथ ही, xml डेटा प्रकार के तरीके पर एक नज़र डालें

तब आप इसे इस रूप में इस्तेमाल कर सकते हैं

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर डेटाबेस में सभी तालिका-मूल्यवान कार्यों को सूचीबद्ध करने के 2 तरीके

  2. एक SRID से दूसरे SRID में ज्यामिति का रूपांतरण/प्रोजेक्ट करें

  3. SQL Server 2008 में FREETEXT क्वेरीज़ वाक्यांश मिलान नहीं

  4. SQL सर्वर 2008 - स्प्लिट

  5. डेटाबेस कॉपी करने का सबसे अच्छा तरीका (एसक्यूएल सर्वर 2008)