Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Chia tham số sql trên dấu phẩy

Bạn có thể thử một cái gì đó như

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

Bạn có thể lưu trữ nó trong một bảng tạm thời hoặc sử dụng nó trong mệnh đề IN.

Đối với nhận xét của @Hoy

Bạn có thể xem xét Phương thức node () (Kiểu dữ liệu xml)

Ngoài ra, hãy xem Phương pháp loại dữ liệu xml

Sau đó, bạn có thể sử dụng nó làm

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. SqlCacheDependency qua Service Broker Notifications - CHỈ CHỌN nhạy cảm trên các cột cụ thể

  2. Có cách nào để thêm 2 Bảng khi sử dụng câu lệnh INSERT trong trình tạo truy vấn không?

  3. Cách tải tệp XML phân cấp khổng lồ (nhưng đơn giản) vào một bảng SQL

  4. Tệp CSV chia dữ liệu hàng của tôi thành các hàng riêng biệt

  5. Làm thế nào để nhóm theo tháng bằng SQL Server?