xii*_*vil 3 sql postgresql sql-convert case case-when
我正在 Postgres 中执行 SQL 查询,该查询选择一个数字字段。我需要显示一个字符串值作为此 SELECT 的结果,因此我使用CASE如下语句:
Select
case numeric_field
when 100 then 'some string'
when 200 then 'some other string'
Run Code Online (Sandbox Code Playgroud)
问题是,如果数字字段有任何其他值(例如300),我需要显示该值(当然作为字符串)。CONVERT我尝试像这样在其他上放一个
...
else CONVERT(varchar(10),numeric_field)
Run Code Online (Sandbox Code Playgroud)
但这没有用。我该怎么做呢?
SELECT CASE numeric_field
WHEN 100 THEN 'some string'
WHEN 200 THEN 'some other string'
ELSE numeric_field::text
END AS result
Run Code Online (Sandbox Code Playgroud)
END缺失。请阅读此处的手册。要将数字字段输出为文本,只需将其转换为 text: numeric_field::text,这是 SQL 标准调用的 Postgres 特定缩写形式:
cast (numeric_field AS text)
Run Code Online (Sandbox Code Playgroud)