You cannot use a "name" in a WHERE clause and aliases are specifically for
aliasing table names only. (An alias reference would look like "WHERE
alias.column_name > 10".) The documentation for "AS name" usage specifically
says a "name" cannot be used in a WHERE clause. I believe you will have to
duplicate the gpsdistance() invocation in the WHERE clause as well.
SELECT DISTINCT
zip_code, gpsdistance(34.2865, 118.435, latitude, longitude)
AS distance
FROM
zipcodes
WHERE
gpsdistance(34.2865, 118.435, latitude, longitude) <= 10.0
Phil Culberson
DAT Services
-----Original Message-----
From: Ed Loehr [mailto:eloehr@austin.rr.com]
Sent: Tuesday, May 02, 2000 1:21 PM
To: Scott Holmes
Cc: pgsql-general
Subject: Re: [GENERAL] Need help with attributes...
Scott Holmes wrote:
>
> I created a latitude/longitude function (it's Richard Lynch's, actually)
> that returns the distance between to points. What I don't know how to do
> is use this value as a filter in the select statement:
>
> PostgreSQL Error: 1 (ERROR: Attribute 'distance' not found )
> select distinct zip_code, gpsdistance(34.2865, 118.435, latitude,
> longitude) as distance from zipcodes where distance
> <= 10.0
>
> The value for distance is actually available, however:
>
>
> select distinct zip_code, gpsdistance(34.2865, 118.435, latitude,
> longitude) as distance from zipcodes where zip_code
> like '913%'
>
> 91301 16.3049416821461,
> 91302 12.858968990111,
> 91303 8.71667347958831,
> 91304 8.67013652211651,
> 91305 8.45399567001425,
> 91306 .....
>
> Any assistance on this question of syntax would be gratefully accepted
Double-quote distance to make it an alias rather than a column name. Then,
I'm not sure you can use the double-quoted version in the where clause or
not...
Regards,
Ed Loehr