PostgreSQL将varchar列表示为布尔值

PostgreSQL将varchar列表示为布尔值,sql,postgresql,Sql,Postgresql,我有以下疑问: SELECT id, first_name from users; 我想将first\u name列表示为布尔值。如果用户有first\u name则为真,否则为假。如何在PostgreSQL中实现这一点?只需测试是否为非空: SELECT id, CASE WHEN first_name IS NULL THEN 'false' ELSE 'true' END FROM users; SELECT id, first_name is not null as

我有以下疑问:

SELECT id, first_name from users;

我想将
first\u name
列表示为布尔值。如果用户有
first\u name
则为真,否则为假。如何在PostgreSQL中实现这一点?

只需测试
是否为非空:

SELECT id, 
       CASE WHEN first_name IS NULL THEN 'false' ELSE 'true' END
FROM users;
SELECT id, first_name is not null  as has_first_name
from users;

如果您想将空字符串(<代码>”/代码>视为“没有名字”,则可以使用:

SELECT id, nullif(first_name,'') is not null  as has_first_name
from users;

挑剔:
“false”
不是布尔值,而是字符value@a_horse_with_no_name您是对的,这是“true”。另一方面,如果需要,这些值将隐式转换为布尔值。