如何从 table 以任何字母开头的所有名称中 select - ORACLE

How to select from table all names that started on any letter - ORACLE

如何select从table所有名字中包含任何字母? 例如,如果变量是 'BANANA' 就很好,如果变量是 '*895-+59' 就不是很好

IF variable LIKE '%A-Z%' THEN
        dbms_output.put_line('GREAT');

How to select from table all names that contains any letter?

您不能在 LIKE 比较中使用正则表达式,但可以在 REGEXP_LIKE:

中使用它们
SELECT name
FROM   table_name
WHERE  REGEXP_LIKE(name, '[A-Za-z]')

如果您希望该列以字母开头,则将其锚定到字符串的开头:

SELECT name
FROM   table_name
WHERE  REGEXP_LIKE(name, '^[A-Za-z]')

如果你想输出 GreatNot Great 然后把它放在 CASE 表达式而不是 WHERE 过滤器:

SELECT name,
       CASE 
       WHEN REGEXP_LIKE(name, '[A-Za-z]')
       THEN 'Great'
       ELSE 'Not Great'
       END AS is_great
FROM   table_name

您可以使用 REGEXP_SUBSTR() 带有条件的函数,例如

SELECT DECODE(SIGN(LENGTH(REGEXP_SUBSTR('<your_expression>','[a-zA-Z]'))),1,'Great','Bad')
  FROM your_table

Demo