我想将罗马的子字符串转换为数字,反之亦然。
输入数据将是这样的:
mysql.h
罗马子字符串格式不一致(大写/小写/标题大小写)
有简单的方法吗?
否则(第二个问题),如何从字符串(I,II,Iii,Iv,v,VI,7、8,Ix,xx,xxi)中获取最后一个子字符串?
我正在使用MySQL。
谢谢。
答案 0 :(得分:1)
如果找到最后一个子字符串,请执行以下操作:
SELECT REVERSE(LEFT(REVERSE(INPUT), LOCATE(' ',REVERSE(INPUT))));
我用您的一个值对其进行了测试:选中here
答案 1 :(得分:0)
尝试创建一个临时表,将后缀或罗马数字转换为数字。
INSERT INTO #tmpSuffixName(
sufCode,
sufLetter)
VALUES
('00',' '),('01','Sr.'),('02','Jr.'),('03','I'),('04','II'),
('05','III'),('06','IV'),('07','V'),('08','VI'),('09','VII'),
('10','VIII'),('11','IX'),('12','X'),('13','Sr. I'),('14','Sr. II'),
('15','Sr. III'),('16','Sr. IV'),('17','Sr. V'),('18','Sr. VI'),
('19','Sr. VII'),('20','Sr. VIII'),('21','Sr. IX'),('22','Sr. X'),
('23','Jr. I'),('24','Jr. II'),('25','Jr. III'),('26','Jr. IV'),
('27','Jr. V'),('28','Jr. VI'),('29','Jr. VII'),('30','Jr. VIII'),
('31','Jr. IX'),('32','Jr. X')
您可以执行以下查询:
SELECT
@mstrSuffix = sufCode
FROM #tmpCustomer
INNER JOIN #tmpSuffixName
ON ISNULL(tmpSuffixName, ' ') = sufLetter
WHERE ID = @GetID