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 по дате отправления: