, когда я использую заявление как Условие случая оно всегда возвращает false;PostgreSql: используя заявление как условие условия
select * from table order by (case when (true) then id else 1/0 end) desc -- works
select * from table order by (case when (select true) then id else 1/0 end) desc -- exception
select * from table order by (case when (1=1) then id else 1/0 end) desc -- works
select * from table order by (case when (select 1=1) then id else 1/0 end) desc -- exception
Что не так с этим условием?
ok, есть ли способ конвертировать это повторение в boolean! Я попытался преобразовать его с помощью *** :: boolean *** оператора. он не работает. – idemirel
Да, оператор select возвращает отношение, но единственное возвращаемое значение из [скалярного подзапроса '(select ...)'] (http://www.postgresql.org/docs/current/static/sql-expressions.html # SQL-SYNTAX-SCALAR-SUBQUERIES) используется в выражении. –