【问题标题】:Oracle Query - Get only strings in the select fieldOracle 查询 - 仅获取选择字段中的字符串
【发布时间】:2010-03-03 22:16:35
【问题描述】:

也许这听起来有点疯狂,但我需要想出一个查询来仅检索字母数字字段中的字母。

例如:

表格
1234添加
3901AC
1812OPA
82711AUU

预期结果
添加
空调
OPA
AUU

谢谢!

【问题讨论】:

  • ABC123EFG 这样的事情会发生什么?预期的结果是什么?
  • 您使用的是哪个版本的 Oracle?
  • 根据我们系统的配置,这永远不会发生。字符串总是在末尾,无论如何无法识别字符串的长度。

标签: sql oracle string numeric


【解决方案1】:

看起来您只想删除数字。您可以在 10g 或 11g 中使用 REGEXP_REPLACE

SELECT REGEXP_REPLACE( your_column, '[0-9]*', '' ) FROM your_table;

【讨论】:

    【解决方案2】:
    SELECT  REGEXP_REPLACE('1234ADD 3901AC 1812OPA 82711AUU', '[0-9]', '')
    FROM    dual
    

    【讨论】:

      【解决方案3】:

      试试

      SELECT TRANSLATE('1234ADD 3901AC 1812OPA 82711AUU', 'A1234567890', 'A') FROM dual;

      一般见:http://www.psoug.org/reference/translate_replace.html

      【讨论】:

      • 我写的有点匆忙,没有方便的Oracle实例来测试它,抱歉。这就是我添加链接的原因...
      • 已更正。如果 TRANSLATE 的第三个参数是 NULL,它总是返回 NULL。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-05-16
      • 1970-01-01
      • 2015-07-24
      • 1970-01-01
      • 2015-05-17
      • 1970-01-01
      • 2014-07-28
      相关资源
      最近更新 更多