Re: Case Statement
От | Stephan Szabo |
---|---|
Тема | Re: Case Statement |
Дата | |
Msg-id | 20020731160809.M21990-100000@megazone23.bigpanda.com обсуждение исходный текст |
Ответ на | Case Statement ("Tom Haddon" <tom@betterhealthfoundation.org>) |
Список | pgsql-sql |
On Wed, 31 Jul 2002, Tom Haddon wrote: > Hi Folks, > > Pretty basic one here. I'm trying to do a SELECT statement that includes a > CASE structure that will be used in the ORDER BY clause, and I want the CASE > structure to evaluate a bunch of criteria and in each case increment its > value by a certain amount: > > SELECT id, description CASE > field1 IS TRUE THEN CASE=CASE+1 > field2 IS TRUE THEN CASE=CASE+2 > END > FROM table > ORDER BY CASE, description; > > Am I misunderstanding what CASE can do here, and if so, how else do I do > what I'm trying to do? I know that that isn't right - any pointers > appreciated. Are you trying to get a 0-3 based on field1 and field2 or some kind of aggregate? The first you can do that with something likecase when field1 is true then 1 else 0 end +case when field2 istrue then 2 else 0 end I think. (Extend for more columns) Or if you've got like 7-8 columns maybe just make a function that does the work for you for clarity. You'll also need a comma after description and you'll want to alias the case expression and use that in order by or use the position number.
В списке pgsql-sql по дате отправления: