Re: How to return a default value if no result

Поиск
Список
Период
Сортировка
От Rob - TEAM Systems Ltd
Тема Re: How to return a default value if no result
Дата
Msg-id 002901cfbdfc$555de9a0$0019bce0$@teamsystems.co.uk
обсуждение исходный текст
Ответ на How to return a default value if no result  ("Rob - TEAM Systems Ltd" <rob@teamsystems.co.uk>)
Ответы Re: How to return a default value if no result  (David G Johnston <david.g.johnston@gmail.com>)
Список pgsql-novice

OK, we’ve thought of another possibility, still seems a bodge though:

 

Select case when exists(Select vat_rate from vatrates where vat_code=’1’ and vat_date<=’2014-08-01’)

Then (Select vat_rate from vatrates where vat_code=’1’ and vat_date<=’2014-08-01’ order by vat_date desc limit 1)

Else (select 0 as vat_rate from vatrates limit 1)

 

From: pgsql-novice-owner@postgresql.org [mailto:pgsql-novice-owner@postgresql.org] On Behalf Of Rob - TEAM Systems Ltd
Sent: 22 August 2014 12:19
To: pgsql-novice@postgresql.org
Subject: [NOVICE] How to return a default value if no result

 

I want my query to return at least one row with a default result even if there are no matches in the database.

As a simple example, getting the valid VAT rate for a transaction date and VAT code:

Select vat_rate from vatrates where vat_code=’1’ and vat_date<=’2014-08-01’ order by vat_date desc limit 1

 

This is fine as long as there is a match.  If there are no matches, I’d like it to return a default (0) rather than no result.

I could make sure there is always a result by having a UNION with a hard-coded record, but this doesn’t let me order by a field not in the result.

 

In this example I could just make sure there is a dummy row in the table with a very old date and do something like this:

Select vat_rate from vatrates where (vat_code=’1’ or vat_code=’DUMMY’) and vat_date<=’2014-08-01’ order by vat_date desc limit 1

But it seems like a bodge to me.

 

Is there a nice way of forcing a default result somehow?

 

Thanks,

 

Rob

В списке pgsql-novice по дате отправления:

Предыдущее
От: "Rob - TEAM Systems Ltd"
Дата:
Сообщение: How to return a default value if no result
Следующее
От: David G Johnston
Дата:
Сообщение: Re: How to return a default value if no result