我如何使用正则表达式编写一个SQL select语句,它将以相反的顺序在LEFT中显示两个单词

问题描述 投票:0回答:2

例如,我已经创建了一个表:

CREATE TABLE CAR
(
    LEFT VARCHAR(50),
    RIGHT VARCHAR(50)
)

然后将一些值插入表CAR:

INSERT INTO CAR (LEFT, RIGHT)
VALUES ('super car', 'car super')

现在,我想通过使用regexp_replace(我确实不熟悉)编写一个select语句,以相反的顺序在LEFT列中以及两个单独的输出列中显示两个单词。我将不胜感激任何建议!谢谢!

输出应该看起来像这样:

column1   column2
-------------------
car       super
sql regex oracle-sqldeveloper computer-science
2个回答
1
投票

您可以使用regexp_substr函数分割字符串。

select regexp_substr('super car', '([[:space:]].*)', 1, 1), regexp_substr('super car', '(.*?)([[:space:]])', 1, 1) from dual

使用regexp_replace功能。

select regexp_replace('super car','(.*?)([[:space:]])'), regexp_replace('super car', '([[:space:]].*)') from dual

1
投票

CREATE TABLE car ( left VARCHAR(50), right VARCHAR(50) ) insert into CAR(LEFT,RIGHT) values('super car', 'car super');

select regexp_replace(left,'(.*?)([[:space:]])') AS COLUMN1,regexp_replace(left, '([[:space:]].*)') AS COLUMN2 from CAR;

© www.soinside.com 2019 - 2024. All rights reserved.