【问题标题】:PL/SQL split varchar [duplicate]PL/SQL 拆分 varchar [重复]
【发布时间】:2015-02-02 10:59:48
【问题描述】:

我从表 John Doe 得到这个。

将 this 拆分为两个变量 this 的最佳方法是什么:

lastName = 'Doe';
firstName = 'John';

【问题讨论】:

    标签: sql oracle plsql


    【解决方案1】:

    我想这应该可行:

    SELECT SUBSTR(NameColumn, 1, INSTR(NameColumn,' ',1)) AS firstName,
    SUBSTR(NameColumn, INSTR(NameColumn,' ',1)+1) FROM tablName
    

    【讨论】:

    • 我在索引和位置计算中可能会出错,所以请添加提示性 cmets 和修改(我已为 Wiki 社区开放)
    • 使用正则表达式:with tbl as (select 'John Doe' str from dual) select regexp_substr(str, '([^ ]*)(|$)', 1, 1, NULL, 1 ) first_name, regexp_substr(str, '([^ ]*)(|$)', 1, 2, NULL, 1) last_name from tbl;
    • 谢谢 :),说到正则表达式,我有点笨拙。但我会再次对正则表达式进行自学。感谢您的评论。
    • 只是另一种方法。很高兴知道嵌套的 INSTR/SUBSTR 会变得丑陋。我想由开发人员决定它是否比正则表达式更难看。呵呵
    猜你喜欢
    • 1970-01-01
    • 2011-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-05
    • 2021-01-06
    • 2014-08-25
    • 1970-01-01
    相关资源
    最近更新 更多