因此,我有1,825行,并希望将其相关的描述返回给EACH行(因此它应返回1,825行,并返回其编号和相关的描述)。在这1,825行中,数字重复了很多次,但是我想找回每一行的描述。在ICA表中,只有30个ICA及其相关说明。
我运行以下
SELECT ica, ic.Description
FROM dbo.ICA ic
WHERE ic.ICA IN (
'16569',
'16569',
'16569',
'16569',
'16569',
'16569',
'16569',
'16569',
'16569',
'16569',
'16569',
etc)
等(就像我说的有1,825行)
我只得到30个结果,因为它只对1,825行中的每个数字匹配一次,而不是对每个INDIVIDUAL行都匹配。我想对所有人进行比赛!我该怎么做?我尝试针对自身加入ICA
表,但仍然无法实现。.
谢谢!
答案 0 :(得分:2)
您可以使用values
构造和left join
:
select t.ica, coalesce(ic.Description, '') as Description
from ( values (16569), (16569), . . . ) t (ica) left join
dbo.ica ic
on ic.ica = t.ica;
但是,如果没有的话,可以使用temp
表而不是subquery
或cte
以获得更好的性能。
答案 1 :(得分:-2)
如果我正确理解了您的问题,那么它应该就这么简单。
SELECT ic.ica, ic.Description FROM dbo.ICA ic
WHERE ic.ICA = '16569'
GROUP BY ic.Description , ic.ICA