Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Как в ASA 5.5 выбрать только первую запись? / 17 сообщений из 17, страница 1 из 1
07.06.2006, 13:27
    #33777545
avalon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в ASA 5.5 выбрать только первую запись?
сабж
____________________________________________
Тот, кто хочет, делает больше, чем тот, кто может!
...
Рейтинг: 0 / 0
07.06.2006, 14:16
    #33777778
Dim2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в ASA 5.5 выбрать только первую запись?
avalon wrote:

> сабж

Выбрать все записи, потом все, кроме первой, выкинуть.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
07.06.2006, 15:06
    #33777996
grach
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в ASA 5.5 выбрать только первую запись?
select first - нет?
...
Рейтинг: 0 / 0
07.06.2006, 15:07
    #33777997
Dim2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в ASA 5.5 выбрать только первую запись?
grach wrote:

> select first - нет?

Нет.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
08.06.2006, 06:19
    #33779306
avalon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в ASA 5.5 выбрать только первую запись?
типа
Код: plaintext
select first N * from...
Как в ASA 5.5 такое сделать в запросе?
____________________________________________
Тот, кто хочет, делает больше, чем тот, кто может!
...
Рейтинг: 0 / 0
08.06.2006, 07:05
    #33779322
Владимор Конев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в ASA 5.5 выбрать только первую запись?
avalonтипа
Код: plaintext
select first N * from...
Как в ASA 5.5 такое сделать в запросе?
____________________________________________
Тот, кто хочет, делает больше, чем тот, кто может!Тебе нужна вообще какая попало первая запись? Или первая запись из упорядоченного по определнным критериям множества?
...
Рейтинг: 0 / 0
08.06.2006, 08:55
    #33779404
avalon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в ASA 5.5 выбрать только первую запись?
Владимор КоневТебе нужна вообще какая попало первая запись? Или первая запись из упорядоченного по определнным критериям множества?
из упорядоченного
...
Рейтинг: 0 / 0
08.06.2006, 09:20
    #33779465
Владимор Конев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в ASA 5.5 выбрать только первую запись?
avalonиз упорядоченногоСтруктуру таблицы, примерный набор данных и критерий упорядочивания записей приведи.
...
Рейтинг: 0 / 0
08.06.2006, 09:36
    #33779507
Sergey Orlov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в ASA 5.5 выбрать только первую запись?
[quot avalon]типа
Код: plaintext
select first N * from...
Как в ASA 5.5 такое сделать в запросе?

В принципе никак, я извращался при помощи курсора, т.е. в процедуре создавалась времянка, в которую при помощи курсора загонял нужные мне записи, а потом select из этой времянки.
...
Рейтинг: 0 / 0
08.06.2006, 09:40
    #33779518
Владимор Конев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в ASA 5.5 выбрать только первую запись?
Sergey Orlov
...Ты ещё мельче шрифт для своего ответа поставить не мог??? ;)
...
Рейтинг: 0 / 0
08.06.2006, 09:47
    #33779537
Sergey Orlov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в ASA 5.5 выбрать только первую запись?
Владимор Конев Sergey Orlov
...Ты ещё мельче шрифт для своего ответа поставить не мог??? ;)
Извини, еще раз повторю.
В принципе никак, я извращался при помощи курсора, т.е. в процедуре создавалась времянка, в которую при помощи курсора загонял нужные мне записи, а потом select из этой времянки.
...
Рейтинг: 0 / 0
08.06.2006, 09:53
    #33779554
ASCRUS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в ASA 5.5 выбрать только первую запись?
...
Рейтинг: 0 / 0
08.06.2006, 09:57
    #33779563
Dim2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в ASA 5.5 выбрать только первую запись?
avalon wrote:

> select first N * from...

5.5 этого не умеет.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
08.06.2006, 10:51
    #33779744
Владимор Конев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в ASA 5.5 выбрать только первую запись?
avalonтипа
Код: plaintext
select first N * from...
Как в ASA 5.5 такое сделать в запросе?
____________________________________________
Тот, кто хочет, делает больше, чем тот, кто может!Такое можно сделать хоть при помощи селфджойна с последующей агрегацией и последующей филььрацией результата посредством предложения HAVING.
...
Рейтинг: 0 / 0
08.06.2006, 11:36
    #33779968
Владимор Конев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в ASA 5.5 выбрать только первую запись?
avalonсабж
____________________________________________
Тот, кто хочет, делает больше, чем тот, кто может!
Предположим, что у нас есть таблица Т вида:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
select * from t order by id

Query finished, retrieving results...

ID   NAME
--   -----------------
  1    Первоя строка
  2    Вторая строка
  3    Третья строка
  4    Четвертая строка
  5    Пятая строка

 5  row(s) retrieved

Предположим, что мы хотим получить первую запись из вот такого набора данных (данные упорядочены по полю NAME), то есть нас интересует строка с ID = 2 и NAME = 'Вторая строка':
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
select * from t order by name

Query finished, retrieving results...

ID   NAME
--   -----------------
  2    Вторая строка
  1    Первоя строка
  3    Третья строка
  4    Четвертая строка
  5    Пятая строка

 5  row(s) retrieved


Для того, чот бы получить желаемый результат можно написать запрос вида:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
select t1.id, 
       t1.name
  from t t1
 inner join t t2
    on t1.name >= t2.name
 group by t1.id, t1.name
having count( 1 ) <=  1 

Query finished, retrieving results...

ID       NAME
--   -------------
  2    Вторая строка

 1  row(s) retrieved


Заменяя значение в выражении HAVING с 1 на другое - будем получать необходимое число строк. Таким образом получается своеобразный аналог FIRST N:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
select t1.id, 
       t1.name
  from t t1
 inner join t t2
    on t1.name >= t2.name
 group by t1.id, t1.name
having count( 1 ) <=  3 

Query finished, retrieving results...

ID       NAME
--   -------------
  1    Первоя строка
  2    Вторая строка
  5    Пятая строка

 3  row(s) retrieved
...
Рейтинг: 0 / 0
08.06.2006, 12:07
    #33780112
prokhorov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в ASA 5.5 выбрать только первую запись?
ASCRUSА SET ROWCOUNT в ASA 5 поддерживалась ?
--
www.rusug.ru - портал русскоязычной группы пользователей Sybase

Поддерживалась.
Конкретно для версии 5.5.0.5 build #2817 :

set rowcount 5
select * from TableName

оставляет как положено первые 5 из отобранных 100.
...
Рейтинг: 0 / 0
08.06.2006, 13:02
    #33780354
avalon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в ASA 5.5 выбрать только первую запись?
prokhorov ASCRUSА SET ROWCOUNT в ASA 5 поддерживалась ?
--
www.rusug.ru - портал русскоязычной группы пользователей Sybase

Поддерживалась.
Конкретно для версии 5.5.0.5 build #2817 :

set rowcount 5
select * from TableName

оставляет как положено первые 5 из отобранных 100.

Спасибо, работает. У меня как раз эта версия :)
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Как в ASA 5.5 выбрать только первую запись? / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]