Re: [SQL] Please help: How to determine largest of two numbers in a query?

From: David Hartwig <daybee(at)bellatlantic(dot)net>
To: Greg Youngblood <YoungblG(at)houstoncellular(dot)com>
Cc: "'PostgreSQL SQL List'" <pgsql-sql(at)postgreSQL(dot)org>
Subject: Re: [SQL] Please help: How to determine largest of two numbers in a query?
Date: 1998-12-03 02:24:37
Message-ID: 3665F665.15AC16B4@bellatlantic.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message sqyang 1998-12-03 07:52:04 hash join --- hash table out of memory
Previous Message Adam Maddock 1998-12-03 01:45:52 Re: [SQL] Please help: How to determine largest of two numbers in a query?