我有一张叫叶子的桌子
id leave_name status
1 Casual Leave 0
2 Sick Leave 0我需要得到像CL,SL这样的左名的第一个字母
我尝试了LEFT(),但是字符串长度没有预先定义。
发布于 2017-11-07 06:57:51
这里有一个明显的边缘情况,即如果休假名称应该有两个以上的项,那么应该发生什么。我假设您只需要前两个单词的首字母,而不管出现多少。
SELECT
CASE WHEN INSTR(leave_name, ' ') > 0 THEN
CONCAT(LEFT(leave_name, 1),
SUBSTRING(leave_name, INSTR(leave_name, ' ') + 1, 1))
ELSE LEFT(leave_name, 1) END AS initials
FROM yourTable;我还增加了一个边缘的情况下,只有一个词存在的覆盖。在这个例子中,我们只取那个单词的一个首字母。
https://stackoverflow.com/questions/47151656
复制相似问题