Is it possible to access column by index instead of it's name/alias in query? I want do something like this:

SELECT * 
FROM 
(
  SELECT 1, 2, 3
) AS subquery
WHERE subquery[0] = 1 -- I want to reference cloumn by its index in row
Nope. In query you need to address columns explicit.
But you can do this inside your application.