Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Функция для получения максимума из нескольких значений / 6 сообщений из 6, страница 1 из 1
08.09.2008, 12:45
    #35527537
andrey002
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция для получения максимума из нескольких значений
ASA 9.0.2
Подскажите, как в select'е получить наибольшее из нескольких колонок значение одной строки таблицы. Что то вроде этого: select max(c1, c2) from t1. (но max - агрегатная функция, не подходит).
...
Рейтинг: 0 / 0
08.09.2008, 12:46
    #35527540
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция для получения максимума из нескольких значений
andrey002 wrote:

> Подскажите, как в select'е получить наибольшее из нескольких колонок
> значение одной строки таблицы. Что то вроде этого: select max(c1, c2)
> from t1. (но max - агрегатная функция, не подходит).
Вообще это можно делать платформонезависимо с помощью CASE-выражений.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
08.09.2008, 12:50
    #35527556
andrey002
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция для получения максимума из нескольких значений
Сразу не написал - интересует, есть ли именно специальная функция, т.к. сравнивать case'ом и if'ом в случае более 2 значений не очень удобно.
...
Рейтинг: 0 / 0
08.09.2008, 12:55
    #35527566
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция для получения максимума из нескольких значений
andrey002 wrote:
> Сразу не написал - интересует, есть ли именно специальная функция, т.к.
> сравнивать case'ом и if'ом в случае более 2 значений не очень удобно.
Ну в ASA есть пользовательские функции вроде бы, так что легко написать
её самому.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
08.09.2008, 20:30
    #35528570
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция для получения максимума из нескольких значений
Смотри функции greater() & lesser(). Правда они принимают только по два параметра, так что если надо сравнивать три и больше полей - все равно прийдется делать вложенные цепочки.
...
Рейтинг: 0 / 0
09.09.2008, 17:12
    #35530363
Alexandr Nikolaev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция для получения максимума из нескольких значений
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
select
  LESSER(LESSER(LESSER(LESSER(p1, p2), p3), p4), p5) as MIN_FROM_COLUMN,
  GREATER(GREATER(GREATER(GREATER(p1, p2), p3), p4), p5) as MAX_FROM_COLUMN
from
(
  select  0  as ORD,  1  as p1,  0  as p2,  0  as p3,  0  as p4, - 2  as p5 from SYS.DUMMY
  union
  select  1  as ORD,  0  as p1,  2  as p2,  0  as p3, - 1  as p4,  0  as p5 from SYS.DUMMY
  union
  select  2  as ORD,  0  as p1,  0  as p2,  3  as p3,  0  as p4,  0  as p5 from SYS.DUMMY
  union
  select  3  as ORD,  0  as p1,  0  as p2, - 1  as p3,  4  as p4,  0  as p5 from SYS.DUMMY
  union
  select  4  as ORD,  0  as p1, - 2  as p2,  0  as p3,  0  as p4,  5  as p5 from SYS.DUMMY
) as #TMP
order by
  #TMP.ORD asc
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Функция для получения максимума из нескольких значений / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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