MYSQL:格式化输出中列的值
我有一张表,如下所示:MYSQL:格式化输出中列的值,mysql,select,join,left-join,inner-join,Mysql,Select,Join,Left Join,Inner Join,我有一张表,如下所示: id name value 123 name1 , 345 name2 N/A 456 name3 ,value1 我希望我的输出像 id name value 123 name1 undefined 345 name2 undefined 456 name3 value1 如果它只是,或N/A,那么输出应该是未定义的 否则,从值的开头替换, Select id, name (case when value regex
id name value
123 name1 ,
345 name2 N/A
456 name3 ,value1
我希望我的输出像
id name value
123 name1 undefined
345 name2 undefined
456 name3 value1
如果它只是,
或N/A
,那么输出应该是未定义的
否则,从值的开头替换,
Select id, name
(case when value regexp ',' then 'undefined'
when value regexp 'N/A' then 'undefined'
end)
但是,它将所有内容替换为value未定义的
假设我们不关心替换value中的逗号。然后,将逗号替换为空字符串,然后获取长度
LENGTH(REPLACE(value, ',', ''))=0
如果这是0
,则该值只有,
Select id, name,
(case when value = 'N/A' then 'undefined'
when LENGTH(REPLACE(value, ',', ''))=0 then 'undefined'
else REPLACE(value, ',', '')
end) value from <table_name>
选择id、名称、,
(当值='N/A'然后是'undefined'时的情况)
当长度(替换(值“,”和“))=0时,则为“未定义”
else替换(值“,”,“”)
结束)来自的值
最简单的方法是:
select id, name,
case
when value in (',','N/A') then 'undefined'
when value like ',%' then substring(value,2)
else value
end
是否有理由需要使用regexp
而不是=
或类似的方法?没有理由