I want to check type of value in postgres like this:
SELECT id,
CASE
WHEN val_is_integer THEN (SOME_QUERY)
WHEN val_isnot_integer T
If anyone else wonders How to just get data type of a varible (not column) you can use the pg_typeof(any) function.
Simply
SELECT pg_typeof(your_variable);
OR
SELECT pg_typeof('{}'::text[]); //returns text[];
Note
pg_typeof(varchar_column) will return character varying regardless of the content of the column. Any column or variable is already typed and pg_typeof will return that declared type. It will not find the "best fitting" type depending on the value of that column (or variable). -- quote from a_horse_with_no_name's comment.