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

Вниз

2000 собрать строку из записей в таблице   Найти похожие ветки 

 
KAA   (2002-03-01 13:12) [0]

Есть таблица, в ней одно из полей - строка. Задача, вернуть переменную, в которой будут перечислены значения этого поля из всех записей. Сделать это желательно запросом, пробежать все записи в цикле - не вариант.


 
TSV   (2002-03-01 13:41) [1]

А как ты себе это иначе представляешь?
Напиши хранимую процедуру и вызывай ее с клиента.


 
Delirium   (2002-03-01 13:45) [2]

Всё что я могу себе представить, это что-то связаное с

select col1 from Table1 for xml auto


 
KAA   (2002-03-01 14:16) [3]

for xml auto
что это?

пробегать в цикле - это слишком зверская операция.
Неужели в MSSQL нет способа сделать нечто подобное средствами SQL.



 
Reindeer Moss Eater   (2002-03-01 14:33) [4]

В T-SQL очень даже просто
Declare MyCur CURSOR For Select MyField From MyTable
Open MyCur
While @@FetchStatus = 0
и так далее ...


 
TSV   (2002-03-01 14:48) [5]

Это то, что я имел в виду. :-)


 
Delirium   (2002-03-01 15:10) [6]

А While - это по вашему не цикл ?!!!


 
Delirium   (2002-03-01 15:11) [7]


> KAA © (01.03.02 14:16)
> for xml auto
> что это?

Попробуй - узнаешь!


 
KAA   (2002-03-01 15:33) [8]

>Delirium © (01.03.02 15:11)

Это то что надо. А есть более приличный вид, чтоб были только значения полей?


 
Delirium   (2002-03-01 15:48) [9]

Нет, это формат XML - собственно, универсальная древовидная структура состоящая из тегов. Её, при желании, можно обработать соответствующим образом как обычный текст.


 
Reindeer Moss Eater   (2002-03-01 15:53) [10]

Алергия на циклы?
Тогда объедини таблицу с ней самой столько раз, сколько в ней строк. Получишь в результирующем запросе одну строку со всеми значениями поля.


 
KAA   (2002-03-01 15:59) [11]

А чтоб результать выборки присвоить переменной?
Говорит The FOR XML clause is not allowed in a ASSIGNMENT statement.


 
Delirium   (2002-03-01 16:04) [12]


> Reindeer Moss Eater (01.03.02 15:53)
> Алергия на циклы?
> Тогда объедини таблицу с ней самой столько раз, сколько
> в ней строк. Получишь в результирующем запросе одну строку
> со всеми значениями поля.

Вопрос не праздный и не из-за аллегии на циклы, я бьюсь над похожей проблемой уже довольно давно. Вот тебе задача: есть таблица с BLOB полями, в ячейки BLOB полей необходимо помещать структуру и данные различных таблиц (в общем случае совершенно различных) для последующей репликации основной таблицы. Пока что оперирую XML средствами MSSQL-я, ничего лучше не придумал. А циклы и курсоры - весьма и весьма медленно, особенно, если моя задача работает большей частью в триггерах.


 
Delirium   (2002-03-01 16:08) [13]


> KAA © (01.03.02 15:59)
> А чтоб результать выборки присвоить переменной?
> Говорит The FOR XML clause is not allowed in a ASSIGNMENT
> statement.

Вот тебе подход, как я делаю:

select * into #Temp
from OpenQuery(local,"select * from test for xml auto, xmldata")

здесь local - linked server сам к себе.
Пока ничего лучше придумать не смог :(


 
KAA   (2002-03-01 16:34) [14]

можно подробней о linked server , я с этим не работал.

эта конструкця работает
select caption from list_job for xml auto

хотелось бы сделать
select @a=caption from list_job for xml auto


 
Delirium   (2002-03-01 16:50) [15]


select @a=caption from list_job for xml auto

Так не получится. Во первых BLOB-данные не могут храниться в переменных, а во вторых - вообще сохранить XML в таблицу можно только так, как я показал выше (если кто знает другой способ - буду рад). Связаные сервера это сервера к которым можно обратиться таким образом:

select * from server.base.user.table

создаются процедурой sp_addlinkedserver или в
EnterPrise Manager->Security->Linked Servers
ну а что делть дальше - читай help :)


 
wicked   (2002-03-01 17:19) [16]

2 Delirium ©
а скорость не падает при выборке через linked server?.... а то я с оракла так данные забираю, так подтормаживает....


 
Delirium   (2002-03-01 17:32) [17]

У меня-же linked сам к себе - мгновенно работает



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

Форум: "Базы";
Текущий архив: 2002.03.28;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.007 c
3-90784
Akhmadey
2002-03-03 12:44
2002.03.28
Проблема с DBGrig


1-90825
Sergant
2002-03-16 02:56
2002.03.28
как зарегистрировать свою программу в Windows средствами DelphI


1-90995
-Stealtch-
2002-03-15 12:09
2002.03.28
Проблема прозрачности цвета в High Color


1-90899
SergeyDon
2002-03-18 10:58
2002.03.28
Проблема с DLL и MDI.


1-90961
Turalyon
2002-03-14 10:00
2002.03.28
Динамические массивы как параметры





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский