Search split in split sqlserver

0 thích 0 không thích
1 lượt xem
đã hỏi 3 Tháng 8, 2022 trong Cơ sở dữ liệu bởi nguyenthao (9,040 điểm)
DECLARE @keyword AS VARCHAR(MAX);
SET @keyword = 'cl613,zp300,4f001';

DECLARE @count INT;
SELECT @count = COUNT(value)
FROM STRING_SPLIT(@keyword, ',');
SELECT B.[Style],
       *
FROM [dbo].[tGRStyles] A
    LEFT JOIN
    (
        SELECT a.[Style]
        FROM
        (
            SELECT [Style],
                   [value]
            FROM [dbo].[tGRStyles]
                CROSS APPLY STRING_SPLIT([StyleCode], ',')
            WHERE value IN
                  (
                      SELECT value FROM STRING_SPLIT(@keyword, ',')
                  )
        ) a
        GROUP BY a.[Style]
        HAVING (COUNT([a].[Style]) = @count)
    ) B
        ON A.[Style] = [B].[Style]
WHERE B.[Style] IS NOT NULL;
    

2 Câu trả lời

0 thích 0 không thích
đã trả lời 4 Tháng 8, 2022 bởi nguyenthao (9,040 điểm)
 
Câu trả lời hay nhất
SELECT *
FROM [dbo].[tGRStyles]
WHERE NOT EXISTS
(
    SELECT 0
    FROM STRING_SPLIT('PU501,HM404', ',')
    WHERE CHARINDEX(CONCAT(',', value, ','), CONCAT(',', StyleCode, ',')) = 0
);
0 thích 0 không thích
đã trả lời 3 Tháng 8, 2022 bởi nguyenthao (9,040 điểm)
lưu lại khi cần sử dụng
...