2013-04-22 14 views

Odpowiedz

12

Bez względu na to, co robisz, wartość boolowska ma wartość równą false, tak samo jak wartość numeryczna jest równa zero.

Spróbuj:

Cast(col1 as integer) 

Jeśli naprawdę chciał traktować null jako fałszywa wtedy:

case when col1 then 1 else 0 end 

Byłoby źle chociaż

+0

Tak, oczywiście; tylko moja logika modelu uważa ewentualne wartości null za fałszywe. Btw, czy istnieje różnica między funkcją rzutowania a col1 :: int? –

+0

"Składnia CAST jest zgodna z SQL, a składnia z :: jest historycznym użyciem PostgreSQL" http://www.postgresql.org/docs/9.2/static/sql-expressions.html –

+0

@mpapec, które byłyby powodem do żalu , i do rozważenia, w jaki sposób doszedłeś do takiego stanu. Teraz może być tak, że puste są całkowicie odpowiednie, co oczywiście jest inną kwestią. Moim celem było właśnie to, że Null <> false –