powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Ограничение выборки в подзапросах
9 сообщений из 9, страница 1 из 1
Ограничение выборки в подзапросах
    #34047453
Davader
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Товарищи, подскажите, плз, как реализовать аналог такого запроса для MSSQLServer в диалекте DB2 (AS/400):

Код: plaintext
1.
2.
3.
4.
5.
SELECT <просто какие=то столбцы>,
(SELECT TOP  1  <какие-то столбцы> FROM <таблица>) AS P,  --просто обычный подзапрос 
<ещё какие=то столбцы> 
FROM <таблица> 
WHERE <условия>

Вроде бы понятно, что единственное отличие будет - вместо T-SQL <TOP 1 > надо <FETCH FIRST 1 ROW ONLY>. Но в подзапросе это НЕ работает, хотя в основном запросе работает на ура :-(
Need ваш help
...
Рейтинг: 0 / 0
Ограничение выборки в подзапросах
    #34047491
Dmitry Y.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
select <чтото> from (
SELECT  id,ROW_NUMBER() OVER(PARTITION BY id ORDER BY <критерий> desc) as rn  FROM <чтото> ) as nn where nn.rn= 1 



Типа того . Если есть способ проще - сам бы посмотрел :)
...
Рейтинг: 0 / 0
Ограничение выборки в подзапросах
    #34047524
Davader
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dmitry Y.

Типа того . Если есть способ проще - сам бы посмотрел :)

Чего-то :-) У меня-то запрос не простой, это я привел для примера простой.

это подзапрос так надо написать, основой запрос не меняется?
...
Рейтинг: 0 / 0
Ограничение выборки в подзапросах
    #34047584
Dmitry Y.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это пример конструкции выборки первой строки. Как и где его применять думай сам. Конструкция работает и в подзапросах в отличает по fetch first rows.
...
Рейтинг: 0 / 0
Ограничение выборки в подзапросах
    #34047607
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DavaderТоварищи, подскажите, плз, как реализовать аналог такого запроса для MSSQLServer в диалекте DB2 (AS/400)Какая версия as/400 у вас?
...
Рейтинг: 0 / 0
Ограничение выборки в подзапросах
    #34047654
Davader
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark Barinstein DavaderТоварищи, подскажите, плз, как реализовать аналог такого запроса для MSSQLServer в диалекте DB2 (AS/400)Какая версия as/400 у вас?

Не знаю :-) Сервер в Москве, а подключаюсь я к нему из Питера, так что посмотреть сейчас не могу... А это влияет на запрос?
...
Рейтинг: 0 / 0
Ограничение выборки в подзапросах
    #34047689
Davader
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dmitry Y.Это пример конструкции выборки первой строки. Как и где его применять думай сам. Конструкция работает и в подзапросах в отличает по fetch first rows.

Спасибо.. будем разбираться... Вроде бы простая вещь в MS Sql, а тут... Чертов IBM :-(
...
Рейтинг: 0 / 0
Ограничение выборки в подзапросах
    #34047752
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Влияет.

Функция row_number() появилась только в V5R4.
В более старых версиях вам придется заворачивать сабселект в скалярную функцию.
Например, мы хотим возвратить имя первой в сортировке по названию колонки таблицы.
Тогда:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
create function first_col(sc varchar( 128 ), nm varchar( 128 ))
returns varchar( 128 )
language sql
begin atomic
declare cn varchar( 128 );
select column_name 
into cn
from qsys2.syscolumns
where table_schema=sc and table_name=nm
order by column_name
fetch first  1  row only;
return cn;
end;

select table_schema, table_name, first_col(table_schema, table_name) column_name
from qsys2.systables 
where table_schema='QSYS2' and table_name='SYSTABLES';
...
Рейтинг: 0 / 0
Ограничение выборки в подзапросах
    #34047791
Davader
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark BarinsteinВлияет.

Функция row_number() появилась только в V5R4.
В более старых версиях вам придется заворачивать сабселект в скалярную функцию.


Спасибо :-) Это ещё круче, чем первый ответ. Но, что делать, если нет простого способа... Узнаю версию Ас400, попробую ваш вариант...
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Ограничение выборки в подзапросах
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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