Повторение значений в строках - PullRequest
0 голосов
/ 06 июня 2018

Моя таблица имеет записи ниже.

SNO NAME TELNO
1   A    12345
2   A     
3   A   
4   B    78901
5   B    

Мне нужно выбрать оператор с тельно 12345 должен отображаться для сотрудника, чье имя 'A' для строк SNO (1,2,3)

и номер 78901 должны отображаться для сотрудника, чье имя 'B' для строк SNO (4,5).

Пример вывода

SNO NAME TELNO
1   A    12345
2   A    12345 
3   A    12345
4   B    78901
5   B    78901

1 Ответ

0 голосов
/ 06 июня 2018

Одним из способов является самостоятельное объединение, при условии, что имена уникальны.Вы действительно не дали достаточно сложный набор образцов.Другим способом является производная таблица.

declare @table table (SNO int, [NAME] char(1), TELNO int)
insert into @table
values
(1,'A',12345),
(2,'A',null),
(3,'A',null),   
(4,'B',78901),
(5,'B',null)  


select
    a.SNO
    ,a.NAME
    ,b.TELNO
from @table a
inner join @table b on b.NAME = a.NAME
where b.TELNO is not null


select
    a.SNO
    ,a.NAME
    ,b.TELNO
from @table a
left join (select name, max(TELNO) telno from @table group by name) b on b.NAME = a.NAME
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...