我有一个名为“Doe,John”的表格,我需要将其解析为“Doe,J”。我已经编写了一个查询来提取姓氏,但我不知道如何修改它以包含逗号和第一个首字母。
SUBSTR(Table.Name,1,INSTR(Table.Name,',',1,1))
答案 0 :(得分:2)
使用NVL
,SUBSTR
和INSTR
的组合。
SELECT NVL(SUBSTR("namefield", 0, INSTR("namefield", ',')+2), "namefield") AS Name
FROM yourtable
输入
Doe, John
Smith, Mark
输出
NAME
Doe, J
Smith, M
答案 1 :(得分:1)
这个怎么样 -
SELECT SUBSTR(Table.Name,1,INSTR(Table.Name,',',1)+2)
答案 2 :(得分:0)
regexp_replace版本,只要根据您的示例数据在字符串中只有一个空格:
select regexp_replace('Doe, John', '(.* .).*', '\1')
\ 1引用括号中字符串的匹配部分,它是包括最后一个空格和后面的字符的所有字符串,忽略其余部分。