Re: BUG #1629: subquery IN returns incorrect results
От | Russell Smith |
---|---|
Тема | Re: BUG #1629: subquery IN returns incorrect results |
Дата | |
Msg-id | 200504280101.01735.mr-russ@pws.com.au обсуждение исходный текст |
Ответ на | BUG #1629: subquery IN returns incorrect results ("mike g" <mike@thegodshalls.com>) |
Ответы |
Re: BUG #1629: subquery IN returns incorrect results
|
Список | pgsql-bugs |
On Wed, 27 Apr 2005 06:23 am, mike g wrote: >=20 > The following bug has been logged online: >=20 > Bug reference: =A0 =A0 =A01629 > Logged by: =A0 =A0 =A0 =A0 =A0mike g > Email address: =A0 =A0 =A0mike@thegodshalls.com > PostgreSQL version: 8.0 > Operating system: =A0 Windows 2000 > Description: =A0 =A0 =A0 =A0subquery IN returns incorrect results > Details:=20 >=20 > If I run this query: > SELECT distinct CAST(newprogram as varchar(60)) FROM > =A0(SELECT t.propnbr,=20 > =A0 =A0 =A0CASE WHEN t.propname =3D =A0'A' THEN 'Am' > =A0 =A0 =A0 =A0 =A0 WHEN t.propname =3D =A0'B' THEN 'AMm' > =A0 =A0 =A0 =A0 =A0 WHEN t.propname =3D =A0'C' THEN 'I might vanish' > =A0 =A0 =A0 =A0 =A0 WHEN t.propname =3D =A0'D' THEN 'Bem' > =A0 =A0 =A0 =A0 =A0 WHEN t.propname =3D =A0'E' THEN 'Cm' > =A0 =A0 =A0 =A0 =A0 WHEN t.propname =3D =A0'F' THEN 'Clm' > =A0 =A0 =A0 =A0 =A0 WHEN t.propname =3D =A0'G' THEN 'Com' > =A0 =A0 =A0 =A0 =A0 WHEN t.propname =3D =A0'H' THEN 'Dm' > =A0 =A0 =A0 =A0 =A0 WHEN t.propname =3D =A0'I' THEN 'Er' > =A0 =A0 =A0 =A0 =A0 WHEN t.propname =3D =A0'J' THEN 'Err' > =A0 =A0 =A0 =A0 =A0 WHEN t.propname =3D =A0'K' THEN 'Em' > =A0 =A0 =A0 =A0 =A0 WHEN t.propname =3D =A0'L' THEN 'Fm' > =A0 =A0 =A0 =A0 =A0 WHEN t.propname =3D =A0'M' THEN 'Fm' > =A0 =A0 =A0 =A0 =A0 WHEN t.propname =3D =A0'N' THEN 'Gm' > =A0 =A0 =A0 =A0 =A0 WHEN t.propname =3D =A0'O' THEN 'Hm' > =A0 =A0 =A0 =A0 =A0 WHEN t.propname =3D =A0'P' THEN 'Dm' > =A0 =A0 =A0 =A0 =A0 WHEN t.propname =3D =A0'Q' THEN 'Lm' > =A0 =A0 =A0 =A0 =A0 WHEN t.propname =3D =A0'R' THEN 'Nm' > =A0 =A0 =A0 =A0 =A0 WHEN t.propname =3D =A0'S' THEN 'Om' > =A0 =A0 =A0 =A0 =A0 WHEN t.propname =3D =A0'T' THEN 'Err' > =A0 =A0 =A0 =A0 =A0 WHEN t.propname =3D =A0'U' THEN 'Rm' > =A0 =A0 =A0 =A0 =A0 WHEN t.propname =3D =A0'V' THEN 'Tm' > =A0 =A0 =A0 =A0 =A0 WHEN t.propname =3D =A0'W' THEN 'Tm' > =A0 =A0 =A0 =A0 =A0 ELSE t.propname > =A0 =A0 =A0 END as newprogram > =A0 =A0FROM example_data t > =A0 =A0INNER JOIN example_data2 b ON t.propco =3D b.propco > =A0WHERE > =A0upper(b.serviced) =3D 'STATE1' and > =A0t.propname =A0in ('A', > 'B' Unless this is a copy/paste error, you have missed a , in your query. =A0Wh= ich effectively turns it into ('A', 'B''C', 'D' ... Which mean that switching those two will give incorrect results. One will b= e missing C, and it will be included with B, and the other D for the same reason. > 'C', =A0--switch me > 'D', =A0-- and switch me > 'E', > 'F', [snip] Regards Russell Smith.
В списке pgsql-bugs по дате отправления: