T-SQL: мне нужно получить пропущенное значение в столбце строк - PullRequest
0 голосов
/ 24 марта 2019

В моем запросе мне нужно найти пропущенные значения в строке.Мой запрос возвращает code_grille_talend и количество пропущенных значений.Теперь мне нужно извлечь пропущенные значения, чтобы завершить работу

Я попытался выполнить запрос в SQL Server, который возвращает code_grille_talend, который включает все значения и количество пропущенных значений

select top 1 
    (G.[code_grille_talend]),
    count(C.code) as counter 
from 
    [dbo].[code] G
left join    
    [dbo].[codeT] C on G.code_grille_talend not like '%' + LTRIM(RTRIM(C.code)) + '%'
group by 
    G.code_grille_talend
having 
    len(g.code_grille_talend) + count(C.code) <= 20 or count(C.code) = 0
order by 
    len(g.code_grille_talend) desc 

Этот запрос возвращает решетку кода top1 и количество пропущенных значений .now, если c.count> 0 (1,2 и т. Д.).Мне нужно знать, что значение (код) пропущено.код типа 1,2,4,7 и code_grille_talend как 147582, 26854789, 2579365, 478529

1 Ответ

0 голосов
/ 24 марта 2019

Если у вас есть таблица с необходимыми кодами и таблица с действительными кодами, вы можете увидеть, какие требуемые коды отсутствуют, с помощью запроса ниже.

CREATE TABLE #requiredValues ([Code] VARCHAR(MAX))
INSERT INTO
    #requiredValues
VALUES
    ('1'),
    ('2')

CREATE TABLE #values ([Code] VARCHAR(MAX))
INSERT INTO
    #values
VALUES
    ('12'),
    ('2'),
    ('3')

SELECT
    #values.[Code], STRING_AGG(#requiredValues.[Code], ', ')
FROM
    #requiredValues
RIGHT JOIN
    #values ON #values.[Code] NOT LIKE '%' + #requiredValues.[Code] + '%'
GROUP BY
    #values.[Code]

-- Without STRING_AGG: for SQL versions pre-2017.
SELECT
    #values.[Code]
    ,STUFF((
        SELECT
            ', ' + #requiredValues.[Code]
        FROM
            #requiredValues
        WHERE
            #values.[Code] NOT LIKE '%' + #requiredValues.[Code] + '%'
        FOR XML PATH ('')),1,2,'')
FROM
    #values
GROUP BY
    #values.[Code]

DROP TABLE #requiredValues
DROP TABLE #values
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...