我有一个名为设备名称的列,其中包含以下数据:
Drivers/BacnetIdentifiers/FP VeV 4-01 Training Lobby
Drivers/BacnetIdentifiers/FP CaV 4-01 Training Lobby
Drivers/BacnetIdentifiers/FP altu 4-01 auditorium
Drivers/BacnetIdentifiers/devicegn/FP altu 4-01 auditorium
需要使用SQL在最后一个“/”之后提取数据。 有人可以帮忙吗?
答案 0 :(得分:0)
regexp_replace(your_string, '^.*/')
答案 1 :(得分:0)
SELECT SUBSTR
(
"device" ,
INSTR("device" , '/', -1)+1,
INSTR("device" , '/', -1)
)
FROM Devices
说明:
SUBSTR
:这是一个返回字符串一部分的函数。它需要以下3个参数
Initial string
:这是您需要参与其中的字符串。在您的情况下,这是您的表格列。
Start Index
:这是你的部分应该开始的初始字符串的索引。
Length
:这是您想要返回的部分的长度。
示例强>
SUBSTR('ABCDEF',3,2) -- Returns 'CD'
将从字符串的第三个字符开始获得2个字符' ABCDEF'。
要在您的情况下返回,Initial string
是您的表格列。
Start index
应该是字符' /'的最后一个索引(最后一次出现)。为了找到这个,我们将使用以下函数:
INSTR
:这是一个函数,它返回字符串中字符串的位置,并具有以下参数:
Initial string
:这是您要在其中查找子字符串的字符串
substring
:这就是您要搜索的内容。
Start position
:您在第一个字符串的哪个位置开始搜索。如果这是一个负数,那么你从字符串的结尾开始到开始。在您的情况下,我们搜索第一次出现的' /'从你的字符串的末尾。
示例强>
INSTR('Drivers/BacnetIdentifiers/FP VeV 4-01 Training Lobby' , '/', -1) -- Returns 26
这将返回27,这是角色的第一次出现' /'从字符串的末尾
LENGTH
:是一个返回指定字符串长度的函数。
示例强>
LENGTH('ABCDEF') -- Returns 6
结合所有这些,我们说在最后一次出现' /'之后我们想要一个数量的字符。在我们专栏的价值范围内。