取回所有值

时间:2018-07-16 18:01:07

标签: sql sql-server

因此,我有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表,但仍然无法实现。.

谢谢!

2 个答案:

答案 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表而不是subquerycte以获得更好的性能。

答案 1 :(得分:-2)

如果我正确理解了您的问题,那么它应该就这么简单。

SELECT ic.ica, ic.Description FROM dbo.ICA ic
WHERE ic.ICA = '16569'
GROUP BY ic.Description , ic.ICA