Casting using alias

QUESTION: IS IT POSSIBLE TO CAST WITH ALIAS? WHEN I TRIED CASTING WITH ALIAS IN THE PROJECT BELOW I GOT AN ERROR MESSAGE

MY CODE USING AN ALIAS FOR CASTING

SELECT f.name country,
       c.urban_pop ,
       f.population as total_pop, 
      cast(c.urban_pop as float) /Cast(total_pop as float) as urban_pct from facts f 
inner  JOIN (select facts_id,SUM(population) as urban_pop from cities group by facts_id) c ON c.facts_id=f.id
where urban_pct>0.5
order by urban_pct`

ERROR MSG
Screenshot (1707)

EXPECTATION
I assumed that since I have given an alias of total_pop to f.population, I could use the alias when casting f.population into a float

You can’t use an alias in the same SELECT statement.

You will have to use f.population instead.

1 Like

is your statement based on how SQL runs a query? . Hence the reason why you can’t use an alias in the same SELECT statement

could you explain further using how the query would run if you use an alias in the same SELECT statement. hence were the error would be generated

Yes, that’s the case. That’s just how the language is designed based on what I came across when I tried to search for this.

There might be a variant of SQL where this is possible (without using subqueries or WITH), but I couldn’t really find any. Most, if not all, don’t allow for this.

1 Like