是否可以在SQL中将布尔值转换为字符串?

时间:2018-02-23 06:18:43

标签: sql postgresql

我有一个名为live_in_city的列,它提供了一个布尔值。我想将它转换为字符串。

我尝试使用cast((live_in_city) as varchar(256)),但它说不能将类型布尔值转换为字符变化。

还有另一种方法吗?

3 个答案:

答案 0 :(得分:3)

在Postgres 9.5中投射到TEXT对我来说很好:

# select (0 = 0)::TEXT, (0 = 1)::TEXT;
 text | text  
------+-------
 true | false
(1 row)

并且您的代码也可以使用:

# SELECT cast((1 = 1) as varchar(256)), cast((1 = 0) as varchar(256));
 varchar | varchar 
---------+---------
 true    | false
(1 row)

注意:(1 = 1)(1 = 0)是所有可能表达式的占位符,返回truefalse

答案 1 :(得分:2)

尝试使用以下内容。在这里,您可以将值分配给1和0。然后转换它。

Select 
    Cast(Case 
            When live_in_city=1 Then 'True' 
            ELse 'False' END 
        AS Varchar(256))
    from #t 

答案 2 :(得分:0)

您可以将其转换为这样的文本:

CAST(table.column AS TEXT)