Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle 当单词的最后一个字符是数字时提取_Oracle - Fatal编程技术网

Oracle 当单词的最后一个字符是数字时提取

Oracle 当单词的最后一个字符是数字时提取,oracle,Oracle,我有一个包含4个字符的值的列。最后一个字符可以是字母或数字 Column name: testing EXPA FTSA HUTS JUF8 GTD9 在我的WHERE子句中,我想对我的“testing”列进行筛选,以仅显示最后一个字符为数字的值 因此,这种情况下的输出为: Output JUF8 GTD9 与: 参见。(刺耳的和弦!) 只有一种方法可以做到这一点-使用REGEXP\u INSTR: WITH cteData AS (SELECT 'EXPA' AS TESTING FROM

我有一个包含4个字符的值的列。最后一个字符可以是字母或数字

Column name: testing
EXPA
FTSA
HUTS
JUF8
GTD9
在我的
WHERE
子句中,我想对我的“testing”列进行筛选,以仅显示最后一个字符为数字的值 因此,这种情况下的输出为:

Output
JUF8
GTD9
与:

参见。

(刺耳的和弦!)

只有一种方法可以做到这一点-使用
REGEXP\u INSTR

WITH cteData AS (SELECT 'EXPA' AS TESTING FROM DUAL UNION ALL
                 SELECT 'FTSA' AS TESTING FROM DUAL UNION ALL
                 SELECT 'HUTS' AS TESTING FROM DUAL UNION ALL
                 SELECT 'JUF8' AS TESTING FROM DUAL UNION ALL
                 SELECT 'GTD9' AS TESTING FROM DUAL)
SELECT TESTING
  FROM cteData
  WHERE REGEXP_INSTR(TESTING, '[0-9]$') > 0;
WITH cteData AS (SELECT 'EXPA' AS TESTING FROM DUAL UNION ALL
                 SELECT 'FTSA' AS TESTING FROM DUAL UNION ALL
                 SELECT 'HUTS' AS TESTING FROM DUAL UNION ALL
                 SELECT 'JUF8' AS TESTING FROM DUAL UNION ALL
                 SELECT 'GTD9' AS TESTING FROM DUAL)
SELECT TESTING
  FROM cteData
  WHERE TRANSLATE(SUBSTR(TESTING, -1),
                  '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ',
                  '0123456789') IS NOT NULL;
或者您可以使用
SUBSTR

(刺耳的和弦!)

啊哈!只有两种方法可以做到这一点:

WITH cteData AS (SELECT 'EXPA' AS TESTING FROM DUAL UNION ALL
                 SELECT 'FTSA' AS TESTING FROM DUAL UNION ALL
                 SELECT 'HUTS' AS TESTING FROM DUAL UNION ALL
                 SELECT 'JUF8' AS TESTING FROM DUAL UNION ALL
                 SELECT 'GTD9' AS TESTING FROM DUAL)
SELECT TESTING
  FROM cteData
  WHERE SUBSTR(TESTING, -1) IN ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9');
WITH cteData AS (SELECT 'EXPA' AS TESTING FROM DUAL UNION ALL
                 SELECT 'FTSA' AS TESTING FROM DUAL UNION ALL
                 SELECT 'HUTS' AS TESTING FROM DUAL UNION ALL
                 SELECT 'JUF8' AS TESTING FROM DUAL UNION ALL
                 SELECT 'GTD9' AS TESTING FROM DUAL)
SELECT TESTING
  FROM cteData
  WHERE INSTR('0123456789', SUBSTR(TESTING, -1)) > 0;
或者你可以使用
SUBSTR
INSTR
…哦,该死!我出去再进来,好吗

(刺耳的和弦!)

啊哈!有三种方法可以做到这一点:

WITH cteData AS (SELECT 'EXPA' AS TESTING FROM DUAL UNION ALL
                 SELECT 'FTSA' AS TESTING FROM DUAL UNION ALL
                 SELECT 'HUTS' AS TESTING FROM DUAL UNION ALL
                 SELECT 'JUF8' AS TESTING FROM DUAL UNION ALL
                 SELECT 'GTD9' AS TESTING FROM DUAL)
SELECT TESTING
  FROM cteData
  WHERE SUBSTR(TESTING, -1) IN ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9');
WITH cteData AS (SELECT 'EXPA' AS TESTING FROM DUAL UNION ALL
                 SELECT 'FTSA' AS TESTING FROM DUAL UNION ALL
                 SELECT 'HUTS' AS TESTING FROM DUAL UNION ALL
                 SELECT 'JUF8' AS TESTING FROM DUAL UNION ALL
                 SELECT 'GTD9' AS TESTING FROM DUAL)
SELECT TESTING
  FROM cteData
  WHERE INSTR('0123456789', SUBSTR(TESTING, -1)) > 0;
或者您可以使用
SUBSTR
TRANSLATE

(刺耳的和弦!)

哈哈!!!有很多不同的方法来实现你的目标!其中包括-
REGEXP\u LIKE
SUBSTR
本身,
SUBSTR
INSTR
TRANSLATE
SUBSTR

WITH cteData AS (SELECT 'EXPA' AS TESTING FROM DUAL UNION ALL
                 SELECT 'FTSA' AS TESTING FROM DUAL UNION ALL
                 SELECT 'HUTS' AS TESTING FROM DUAL UNION ALL
                 SELECT 'JUF8' AS TESTING FROM DUAL UNION ALL
                 SELECT 'GTD9' AS TESTING FROM DUAL)
SELECT TESTING
  FROM cteData
  WHERE REGEXP_INSTR(TESTING, '[0-9]$') > 0;
WITH cteData AS (SELECT 'EXPA' AS TESTING FROM DUAL UNION ALL
                 SELECT 'FTSA' AS TESTING FROM DUAL UNION ALL
                 SELECT 'HUTS' AS TESTING FROM DUAL UNION ALL
                 SELECT 'JUF8' AS TESTING FROM DUAL UNION ALL
                 SELECT 'GTD9' AS TESTING FROM DUAL)
SELECT TESTING
  FROM cteData
  WHERE TRANSLATE(SUBSTR(TESTING, -1),
                  '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ',
                  '0123456789') IS NOT NULL;
但我当然没想到西班牙宗教法庭


如果您使用的是Oracle 12c R2或更高版本,您可以使用

结果:


很高兴看到你在回答这个问题时玩得很开心:)最好小心点。我有一把舒适的椅子和一个柔软的枕头,我不怕用它们