Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.09.26;
Скачать: CL | DM;

Вниз

Как реализовать такой запрос   Найти похожие ветки 

 
Kalinka   (2002-09-04 13:58) [0]

В таблице есть 2 поля:
ID int
Name varchar(1)

ID Name
1 a
1 b
2 c
3 d

надо одним запросом (без курсоров) получить выборку:
ID Name
1 a,b
2 c
3 d


 
3JIA9I CyKA ©   (2002-09-04 14:01) [1]

IMHO нет


 
Shaman_Naydak ©   (2002-09-04 14:29) [2]

Мда, мне понравился вопрос! Короче, если у тебя 2000 MSSQL, то можно сделать следующий финт ушами (вроде как без курсоров, так что условие выполнено!):
CREATE FUNCTION dbo.ConcatNames(@ID int) RETURNS varchar(256)
AS
BEGIN
DECLARE @Result varchar(256)
SELECT @Result=COALESCE(@Result+",", "")+Name
FROM Table1
WHERE ID=@ID

RETURN @Result
END

А вот и сам запросик:
SELECT ID, dbo.ConcatNames(ID) FROM Table1
GROUP BY ID


 
3JIA9I CyKA ©   (2002-09-04 17:07) [3]

Да, пожалуй.


 
wicked ©   (2002-09-04 20:38) [4]


> SELECT @Result=COALESCE(@Result+",", "")+Name
> FROM Table1
> WHERE ID=@ID

хм... чё то я не пойму, как сия конструкция работает?...


 
Shaman_Naydak ©   (2002-09-04 22:25) [5]


> wicked © (04.09.02 20:38)

Практически как курсор :)
То есть для каждой записи из выборки выполняется
@Result = @Result + "," + Name,
а для первой (так как при этом @Result = NULL),
@Result = Name

И вся недолга



Страницы: 1 вся ветка

Текущий архив: 2002.09.26;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.012 c
1-85539
Dmitriy Polskoy
2002-09-13 12:48
2002.09.26
Помогите разобраться с QuickReport - ом


1-85610
Fog
2002-09-15 12:52
2002.09.26
AssignFile?


14-85668
MJH
2002-08-31 11:29
2002.09.26
Каким способом грабит компакты SF6 в winXP, если в ней нет аспи?


3-85366
vanko
2002-09-03 12:17
2002.09.26
Заппрос


3-85315
Kurt
2002-09-06 15:53
2002.09.26
Люди помогите с CtrlGrid-ом!