[postgis-users] postgres case(conditional)statement problem

Charles Galpin cgalpin at lhsw.com
Sat Dec 4 07:48:10 PST 2010


Unless it's a typo in your email, you probably need a space between '400' and 'else'. Also make sure the selling price is not a string so the following query should work

select count(*) from selling1 where price > 200 and price < 300

Otherwise if they are strings you will need to cast them to numbers to be able to use the < and > operators.

hth
charles

On Dec 4, 2010, at 7:45 AM, zhang zhe wrote:

> Hello,
> 
> Does anyone familiar with postgres case statement. 
> 
> I have a tale called selling1.sql, inside table there are two columns
> item(1,1,2,3,3,3,4,4,4....)  and price(234, 243, 245, 342, 124, 245, 343, 123,455.....). I want to select the price where item id is equal to 1, and if its price is bigger than 200 and smaller than 300, the price will be changed into 400 . so in this case, price column value will be changed into,  price(400,400, 245,342,124, 245, 343, 123, 455...)
> 
> My sql statement is like this
> 
> select price from selling1 where selling1.item = '1',
>  case when 200<selling1.price and selling1.price <300 then '400'else 'other' END;
> 
> but it always give me the error. It said syntax error in case. 
> 
> Do you known whatś wrong? 
> 
> Thanks
> 
> _______________________________________________
> postgis-users mailing list
> postgis-users at postgis.refractions.net
> http://postgis.refractions.net/mailman/listinfo/postgis-users

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/postgis-users/attachments/20101204/44a69e79/attachment.html>


More information about the postgis-users mailing list