【发布时间】:2013-04-22 20:07:37
【问题描述】:
我有下表
DRIVER_GID DRIVER_REFNUM_QUAL_GID
SDL2/C001.100000 SDL2.486900 CURRENT DISTRICT
SDL2/C001.100000 SDL2.486900 PERMANENT DISTRICT
SDL2/C001.100000000 SDL2.486900 CURRENT DISTRICT
SDL2/C001.100000000 SDL2.486900 PERMANENT DISTRICT
SDL2.600119036 SDL2.436001 CURRENT DISTRICT
SDL2.600119036 SDL2.436001 PERMANENT DISTRICT
我需要提取字符串“SDL2”后面的数值。来自 DRIVER_REFNUM_QUAL_GID 列。谁能推荐一个查询。
【问题讨论】:
-
请参阅codeproject.com/Articles/7938/… 以获得应该可行的解决方案。
-
您使用的是哪个 DBMS?
-
是“SDL”后面的数字。总是从位置 6 和 6 个字符宽开始?如果是这样,一个简单的
substr(driver_refnum_qual_gid, 6, 6)将提取您想要的字符串。 -
我们使用Oracle,“SDL”并不总是从第6位开始,位置可能会改变。但 ”。”是常数并且在“.”之后应该有一个数字值,后跟空格和当前或永久区字。
-
您需要这样做的事实表明您可能有一个非常糟糕的数据设计。单独存储数值。