Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Работа с данными

Страница: 1 |

 

  Вопрос: Запрос SQL: формирования строки из набора значений Добавлено: 05.10.04 12:34  

Автор вопроса:  Barulya
Подскажите пожалуйста, как мне сформировать строку из набора нескольких значений возвращаемых запросом, т.е. запрос возвращает например значения:
01
02
03
04
05
как из этих значений вместо них возвратить строку 01,02,03,04,05 в этом же запросе?

Ответить

  Ответы Всего ответов: 8  

Номер ответа: 1
Автор ответа:
 Mihalыch



ICQ: 373-509-101 

Вопросов: 56
Ответов: 330
 Профиль | | #1 Добавлено: 05.10.04 13:29
А куда эти значения возвращяются?, в RecordSet, тогда можно так:
Dim str As String
RecordSet.MoveFirst
Do While Not RecordSet.EOF
    str = str & rsPeople!FieldName & ","
    RecordSet.MoveNext
loop
Хотя скорее всего я не совсем правильно понял вопрос...

Ответить

Номер ответа: 2
Автор ответа:
 Barulya



Вопросов: 29
Ответов: 55
 Профиль | | #2 Добавлено: 05.10.04 14:15
В том-то и проблема, что это необходимо реализовать в самом запросе, в виду того, что программа может очень много раз выполнять запрос (в цикле) по количеству предыдущих результатов

Ответить

Номер ответа: 3
Автор ответа:
 crackoff



ICQ: 156165990 

Вопросов: 12
Ответов: 229
 Профиль | | #3 Добавлено: 05.10.04 15:37
-- в таблицу authors добавили дополнительное уникальное поле myindex
use pubs
declare @sp varchar(1000), @sp1 varchar(1000)
declare @count int, @i int
select @count=(select count(au_lname) from authors)
set @i=1
set @sp1='au'
set @sp=''
while @i<=@count
begin
set @sp=(select au_lname from authors where myindex=@i)
set @sp1=@sp1+' '+@sp
set @i=@i+1
end
select @sp1 as 'То что нам нужно'

Ответить

Номер ответа: 4
Автор ответа:
 metla



Вопросов: 0
Ответов: 2
 Профиль | | #4 Добавлено: 07.10.04 19:27
Declare @CurStr varchar(1000)
Set @CurStr = '';
select @CurStr = @CurStr + ' ' + MyString from MyTable
select @CurStr

и все!!!

Ответить

Номер ответа: 5
Автор ответа:
 Barulya



Вопросов: 29
Ответов: 55
 Профиль | | #5 Добавлено: 07.10.04 19:54
Расскажите пожалуйста мне чайнику, где это реализуется. Дело в том, что я использую базу Данных MSAccess, а подключаюсь к ней через ADODB.

Ответить

Номер ответа: 6
Автор ответа:
 metla



Вопросов: 0
Ответов: 2
 Профиль | | #6 Добавлено: 08.10.04 09:53
Такие вещи реализуются в MS SQL Server, если ты имеешь дело с Access это не прокатит, тогда почему программно это не реализовать, сделать например вложеный цикл, если тебе надо как ты говоришь вызыват в цикле?

Ответить

Номер ответа: 7
Автор ответа:
 Barulya



Вопросов: 29
Ответов: 55
 Профиль | | #7 Добавлено: 08.10.04 10:11
Да уж придется... Все равно спасибо за помощь...

Ответить

Номер ответа: 8
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #8
Добавлено: 17.10.04 23:52
В строке SQL это описывается что-то похоже на:
TRANSFORM ... SELECT ... FROM ...

TRANSFORM Count(Архив.КодРаботника)
SELECT Предприятия.Название
FROM Предприятия INNER JOIN Архив
WHERE Year([ДатаПриема])=2000
GROUP BY Предприятия.Название
ORDER BY Предприятия.Название

В Access это называется Перекрестный запрос, читай лучше хелп к Access...

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам