Re: [SQL] Please help: How to determine largest of two numbers in a query?
| От | David Hartwig |
|---|---|
| Тема | Re: [SQL] Please help: How to determine largest of two numbers in a query? |
| Дата | |
| Msg-id | 3665F665.15AC16B4@bellatlantic.net обсуждение исходный текст |
| Ответ на | Please help: How to determine largest of two numbers in a query? (Greg Youngblood <YoungblG@houstoncellular.com>) |
| Список | pgsql-sql |
My $.03 worth, without really knowing what these values represent:
There is no such "standard" query that can conditionally select between two
columns. Fortunately PostgreSQL will allow you to create function - of one
does not already exist.
The function would be something like:
greater_int(integer a, integer b)
It takes two integers arguments and returns the greater integer.
Then you do something like:
CREATE VIEW myview AS
SELECT yyymmdd, key, greater_int(value1, value2) FROM mytable;
Or just do the SELECTs directly.
This may not be the most efficient way to accomplish your goal. I would also
take a good look at may table design. Value1 and value2 MAY be a repeating
group and you may want to normalize a little more. Or not.
Greg Youngblood wrote:
> I have a table with the following structure:
> yyyymmdd int4
> key char(16)
> value1 int4
> value2 int4
>
> with the following sample data:
> yyyymmdd key value1 value2
> 19981201 hello 32 16
> 19981201 bye 29 64
> 19981202 hello 16 20
> 19981202 bye 23 13
>
> What I need is to select the greatest between value1 and value2, so the
> answer would be:
> yyyymmdd key value
> 19981201 hello 32
> 19981201 bye 64
> 19981202 hello 20
> 19981202 bye 23
>
> I can do this via ODBC using access by creating a column which is defined as
> IF(value1>value2,value1,value2) but that doesn't work in psql.
>
> How can I make this work in psql?
>
> Thanks
> Greg
В списке pgsql-sql по дате отправления: