是否有一个已建立的算法/库来创建基于单词的更短,更简单的字符串?我需要简化很多品牌名称来生成我们自己的部分号,我们在仓库中使用它。
示例:
AECW....A E C WHITLOCK
BATI....BENATI
BDER....BOMBARDIER
PACC....PACCAR PARTS DIV
JAGR....JAEGER
JCB.....JCB
JNDR....JOHN DEERE
那么,有没有办法生成它们,或者我唯一的选择是创建一个包含所有这些的数据库表?
我希望它们生成的另一个原因是:我已经(并且需要)一个表,其中存储了所有品牌名称,并且我不想存储简化的那些如果没有必要。此外,我仍然需要第一次生成它们的东西。
编辑:好的,我需要存储它们,但生成缩写仍然是一个问题。
答案 0 :(得分:2)
要生成缩写,只需删除元音(例如PL / SQL代码):
create function abbr(s varchar2) return varchar2 as
r varchar2(4000) := upper(s);
begin
for i in 5..regexp_count(r, '[A-Z]') loop
r := regexp_replace(r, '([A-Z])[AEIOU]', '\1', 1, 1);
end loop;
return substr(regexp_replace(r, '[^A-Z]'), 1, 4);
end;
A E C WHITLOCK AECW
BENATI BNTI
BOMBARDIER BMBR
PACCAR PARTS DIV PCCR
JAEGER JGER
JCB JCB
JOHN DEERE JHND