Re: Creative use of CASE in a GROUP BY clause
От | Masaru Sugawara |
---|---|
Тема | Re: Creative use of CASE in a GROUP BY clause |
Дата | |
Msg-id | 20020319004233.2FBF.RK73@sea.plala.or.jp обсуждение исходный текст |
Ответ на | Creative use of CASE in a GROUP BY clause ("Dorian Taylor" <leg0@hotmail.com>) |
Список | pgsql-sql |
On Mon, 18 Mar 2002 13:14:46 "Dorian Taylor" <leg0@hotmail.com> wrote: > I'm trying to figure out how to craft a query that I can embed into a piece > of code that can be passed a bind value in order to dictate how it should > behave on GROUP BY, sparing me from having to write separate queries for N > functions and/or columns I may want to group my query by. > > e.g. SELECT COUNT(foo) FROM bar GROUP BY CASE (? IS NOT NULL) THEN thiscol > ELSE thatcol END > > If thiscol and thatcol aren't the same type, the CASE bombs out. I suppose If so, you may need to cast one of them. e.g. SELECT COUNT(foo) FROM bar GROUP BY CASE WHEN (? IS NOT NULL) THEN thiscol::TEXT ELSEthatcol -- if the type of thatcol is TEXT END; > ultimately it would be a matter of reducing each column definition in the > CASE to a boolean expression, but I'm not sure what that would syntactically > look like, as simply declaring a column in GROUP BY is obviously shorthand > for something. > Regards, Masaru Sugawara
В списке pgsql-sql по дате отправления: