sql - 选择 case when number 然后在 postgresql 中选择 char

标签 sql postgresql

我正在尝试进行查询,以防万一检测到一个数字,然后向我显示一个字符但不起作用。我的句子是:

SELECT xxxx 
CASE
    WHEN status=11 THEN 'OK' 
    WHEN status=33 THEN 'BAD' 
    ELSE status 
END,
...............

它给我一个错误:

ERROR: invalid input syntax for integer: "OK"

怎么了?有什么帮助吗? 谢谢,对不起我的英语!

最佳答案

您需要转换为字符串。像这样:

(case when status = 11 then 'OK'
      when status = 33 then 'BAD'
      else status::text
 end),

case 表达式返回具有指定类型的单个值。根据 SQL 规则,当您混合使用字符串和数字时,数字 是首选。

Postgres 可以轻松地将您想要的值转换为 else 子句中的字符串。

关于sql - 选择 case when number 然后在 postgresql 中选择 char,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57429974/

相关文章:

sql - 将Oracle ApEx集合连接到实际表

sql 设置 xml 值

sql - 比较两个表并发现不匹配

mysql - 如何使用 C# 获取 Oracle、SQL Server、postgres、mysql 或任何其他数据库的数据库实例和架构详细信息?

postgresql - 在没有锁表的 PostgreSQL 中将列类型 VARCHAR 更改为 TEXT

ruby - 带有 sinatra 的 Postgres 在部署时产生 "database does not exist"

sql - 关于JOIN的一个问题

android sqlite 外键不工作

python - Ansible中的任意主机名解析

php - 我如何才能对我的 PHP/MYSQL 新闻网站进行基准测试/配置文件,以便我以后可以将它与 django/postgres 重新编码的版本进行比较?