在我的查询中,我需要在字符串中查找缺失的值。我的查询返回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
如果c.count> 0(1,2等),则此查询返回top1代码格栅和丢失值的数量。now。我需要知道缺少值(代码)。 像1,2,4,7这样的代码 以及code_grille_talend,例如147582,26854789、2579365、478529
答案 0 :(得分:0)
如果您有一个包含必需代码的表和一个包含实际代码的表,则可以通过以下查询查看缺少哪些必需代码。
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