powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Как в WHERE обратиться к столбцу по номеру?
4 сообщений из 4, страница 1 из 1
Как в WHERE обратиться к столбцу по номеру?
    #38126890
dime-m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Друзья!

Имеется запрос, суть которого примерно такова:

Код: plsql
1.
SELECT '04.06.2010' FROM SYSIBM.SYSDUMMY1 WHERE TO_DATE(1, 'DD.MM.YYYY') >= TO_DATE('01.01.2009', 'DD.MM.YYYY')



Т.е. стобец с текстовым представлением дат в результирующем наборе не поименован.

Я хочу обратиться к нему по номеру (внутри TO_DATE), но получаю результат:

Код: plsql
1.
"1" невозможно проинтерпретировать при использовании строки формата "DD.MM.YYYY" для функции TIMESTAMP_FORMAT




Я, конечно, могу преобразовать запрос во что-то типа:

Код: plsql
1.
2.
3.
4.
SELECT * FROM (
    SELECT '04.06.2010' AS DT
    FROM SYSIBM.SYSDUMMY1) AS R
WHERE TO_DATE(R.DT, 'DD.MM.YYYY') >= TO_DATE('01.01.2019', 'DD.MM.YYYY')



Но нет ли каких-то менее многословных способов?

Спасибо :)
...
Рейтинг: 0 / 0
Как в WHERE обратиться к столбцу по номеру?
    #38127625
knudsen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dime-m, что-то типа такого?

WITH D127 AS (SELECT '12.11.2011' AS S405 FROM SYSIBM.SYSDUMMY1)
SELECT S405 FROM D127 WHERE S405 <= '2011-12-12'

или такого

WITH D127 AS (SELECT CAST('12.11.2011' AS DATE) AS S405 FROM SYSIBM.SYSDUMMY1)
SELECT S405 FROM D127 WHERE S405 <= '2011-12-12'
...
Рейтинг: 0 / 0
Как в WHERE обратиться к столбцу по номеру?
    #38128509
dime-m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
knudsen,

Т.е. всё равно получается некий вложенный подзапрос...

А с точки зрения скорости выполнения есть какая-либо разница между

Код: plsql
1.
WITH x AS (SELECT ...) SELECT * FROM x ...


и

Код: plsql
1.
SELECT x.* FROM (SELECT ...) AS x


?
...
Рейтинг: 0 / 0
Как в WHERE обратиться к столбцу по номеру?
    #38130377
knudsen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dime-m,
это скорее DECLARE CURSOR чем SUBSELECT
- при возрастании монстроидальности запроса мне больше нравится WITH, но чаще использую другое
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Как в WHERE обратиться к столбцу по номеру?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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