2009-12-02 3 views
1

Моя таблица выглядит следующим образомКак использовать этот запрос, поставив указанное условие?

ID Name 
1 Amit 
2 Shalu 
2 Ram 
3 John 
3 Kripa 
3 Manish 
3 Abhi 
1 Ayush 

Мое требование, чтобы генерировать запрос, который будет делать формат, как

ID Name 
1 Amit OR Ayush 
2 Shalu OR Ram 
3 John AND Kripa AND Manish AND Abhi 

условия: когда граф (Id) = 2 конкатенации ИЛИ с именами , когда счета (Id)> 3 конкатенации И с названием

Я пытаюсь изменить этот запрос для того чтобы достигнуть выше требования:

select id, 
    REPLACE(stuff((select ',' + ' ' + name + ' ' 
from @Table b 
where b.id = a.id 
    FOR xml path('')),1,1,' '),',','OR') MergedDatafrom @Table agroup by a.id 
+0

ли это домашнее задание? –

+0

ya вы можете сказать, что :( – AJ01

ответ

1

Вы можете использовать накидной подход:

<query that uses OR> 
group by a.id 
having count(*) <= 2 

UNION ALL 

<query that uses AND> 
group by a.id 
having count(*) > 2 
+0

Спасибо, чувак, это сработало для меня, и я надеюсь, что у меня не возникнут какие-либо другие проблемы. – AJ01

Смежные вопросы