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

Cách tách (tách) chuỗi bằng dấu phẩy trong thủ tục được lưu trữ trên SQL Server

Nếu bạn chuyển chuỗi được phân tách bằng dấu phẩy (bất kỳ dấu phân cách nào) để lưu trữ thủ tục và sử dụng trong truy vấn thì bạn cần phải ngắt chuỗi đó và sau đó bạn sẽ sử dụng nó.

Dưới đây có ví dụ:

DECLARE @str VARCHAR(500) = 'monday,tuesday,thursday'
CREATE TABLE #Temp (tDay VARCHAR(100))
WHILE LEN(@str) > 0
BEGIN
    DECLARE @TDay VARCHAR(100)
    IF CHARINDEX(',',@str) > 0
        SET  @TDay = SUBSTRING(@str,0,CHARINDEX(',',@str))
    ELSE
        BEGIN
        SET  @TDay = @str
        SET @str = ''
        END
  INSERT INTO  #Temp VALUES (@TDay)
 SET @str = REPLACE(@str,@TDay + ',' , '')
 END

 SELECT * 
 FROM tblx 
 WHERE days IN (SELECT tDay FROM #Temp)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Giờ định dạng Châu Âu - Chuyển đổi chuỗi thành Datetime trong SQL

  2. Chỉ mục không sử dụng máy chủ SQL

  3. PDO DBLIB truy cập SQL Server 2008 và 2012

  4. Chèn Microsoft SQL Server từ truy vấn chọn

  5. Cách lấy Bảng cha, Bảng tham chiếu, Tên và cột ràng buộc khóa ngoại trong SQL Server - Hướng dẫn SQL Server / TSQL Phần 71