PostgreSQL boolean cast(0为false)

Сух*_*й27 9 postgresql casting

我更喜欢1/0而不是t/f,所以在将布尔值转换为整数时我应该使用什么?

select coalesce((null::boolean)::int, 0)
Run Code Online (Sandbox Code Playgroud)

要么

select case null::boolean when 't' then 1 else 0 end
Run Code Online (Sandbox Code Playgroud)

......别的什么?

Dav*_*dge 15

无论你做什么,布尔值null都不等于false,只要数字null等于零.

尝试:

Cast(col1 as integer)
Run Code Online (Sandbox Code Playgroud)

如果你真的想将null视为false,那么:

case when col1 then 1 else 0 end
Run Code Online (Sandbox Code Playgroud)

但这将是一件坏事