我的要求是生成一个mysql查询
select ss.column1 P1,ss.column2 P2,ss.column3 P3 from table1 ss;
我想只在列表中有值时才选择第2列字段值,否则我想在P2列中插入一个常量值。有人可以帮我构建一个查询。
答案 0 :(得分:1)
COALESCE
是SQL函数,它允许您用其他东西替换空值。 E.g:
select
ss.column1 as p1,
coalesce(ss.column2, 'no value') as p2,
ss.column3 as p3
from table1 ss;
但是数据类型必须匹配,因此当column2是文本列时,您可以使用上述内容。如果是数字,则可以使用数值替换null(例如,使用零)或者您将列转换为'数据类型。
一些例子:
coalesce(mytext, 'unknown')
coalesce(mynumber, 0)
coalesce(cast(mynumber as varchar), 'unknown')
coalesce(mydate, date(now()))
coalesce(date_format(mydate, '%Y-%m-%d'), 'unknown')