Re: How to force select to return exactly one row
От | Andrus |
---|---|
Тема | Re: How to force select to return exactly one row |
Дата | |
Msg-id | 08687F16B70F4E0ABBDF6536DB3F9B38@andrusnotebook обсуждение исходный текст |
Ответ на | Re: How to force select to return exactly one row (Martin <mgonzo@gmail.com>) |
Ответы |
Re: How to force select to return exactly one row
|
Список | pgsql-general |
Martin,
Thank you. SELECT statement returns lot of columns.
I tried
select coalesce( (select 1,2 ), null);
but got
ERROR: subquery must return only one column
How to use your suggestion if select returns lot of columns ?
Andrus.
----- Original Message -----From: MartinTo: AndrusSent: Monday, June 21, 2010 10:14 PMSubject: Re: [GENERAL] How to force select to return exactly one rowTry wrapping the entire statement in a COALESCE((statement), <DEFAULT_VALUE>);-m2010/6/21 Andrus <kobruleht2@hot.ee>
Autogenerated select statement contains 0 .. n left joins:
SELECT somecolumns
FROM ko
LEFT JOIN t1 ON t1.primarykey= ko.t1foreignkwey
...
LEFT JOIN tn ON tn.primarykey= ko.tnforeignkwey
WHERE ko.primarykey='someprimarykeyvalue';
This select can return only 0 or 1 rows depending if ko row with primary key
'someprimarykeyvalue' exists or not.
Problem:
if there is no searched primary key row in ko database, select should also
return empty row.
To get this result I added right join:
SELECT somecolumns
FROM ko
RIGHT JOIN (SELECT 1) _forceonerow ON true
LEFT JOIN t1 ON t1.primarykey= ko.t1foreignkwey
...
LEFT JOIN tn ON tn.primarykey= ko.tnforeignkwey
WHERE ko.primarykey is null or ko.primarykey='someprimarykeyvalue';
but it still does not return row if primary key row 'someprimarykeyvalue'
does not exist.
How to force this statement to return one row always ?
Andrus.
--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general
В списке pgsql-general по дате отправления: