我有一张这样的表
<meta name="viewport" content="width=device-width, initial-scale=1">
我想要这样的结果
| symbol | value |
-------------------
| test | 12 |
| yes | 8 |
| test.m | 13 |
| no | 10 |
| nah.m | 20 |
| nah | 17 |
如果您看到该表,我想选择记录中最后一个字符中包含“.m”的记录,当记录中有重复字符时,最后一个字符中没有“.m”并删除“.m”。
谁能帮帮我?提前谢谢。答案 0 :(得分:2)
select t1.symbol, coalesce(t2.value, t1.value)
from t t1
left join t t2 on t1.symbol = concat(t2.symbol, '.m')
where t1.symbol not like '%.m'
答案 1 :(得分:1)
您可以使用CASE和分组
select
case when locate('.', symbol )> 0
then sustr(symbol, 1, locate('.', symbol ) -1)
else symbol
end as my_symbol,
max(value)
from my_table
group by my_symbol