Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.09.26;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.006 c
1-85455
Vrach
2002-09-16 02:02
2002.09.26
Как откомпилить DLL -ку?


4-85737
Sergserg
2002-08-06 22:40
2002.09.26
Регионы Иконок.


1-85431
Treibre
2002-09-15 18:07
2002.09.26
помогите новичку


14-85704
Lexer
2002-08-28 18:09
2002.09.26
Мастера, очень нужен Grid.


1-85529
Демонов Е.В.
2002-09-13 13:26
2002.09.26
DragAllowFiles ???????????





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский