我有一张名为leaves的表
id leave_name status
1 Casual Leave 0
2 Sick Leave 0
我需要获得假名的第一个字母,例如 CL,SL
我尝试了LEFT()但字符串长度没有预定义。
答案 0 :(得分:3)
这里有一个明显的边缘情况,如果休假名称应该有两个以上的条款,应该会发生什么。我假设您只需要前两个单词的首字母,无论出现多少。
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;
当只有一个单词存在时,我还添加了边缘情况的覆盖范围。在这种情况下,我们只取这个单词的单个首字母。