如何从Oracle中的句子中删除符号?

努尔扎·诺格贝克

Oracle数据库中,我有这样的表。

| TREE                            | ORG_NAME |
|---------------------------------|----------|
| \Google earth\Nest global\ATAP  | ATAP     |
| \Google earth\Nest\Beemoney\    | Beemoney |
| \Google\\\BeeKey\               |          |
|                                 | York     |

我试图使将返回这样的结果的SQL查询。

| ORGANIZATION                      |
|-----------------------------------|
| Google earth > Nest global > ATAP |
| Google earth > Nest Beemoney      |
| Google > BeeKey                   |
| York                              |

如您所见,我想要:

1)\在句子的开头和结尾处替换符号。

2)将\句子中的>符号替换符号。

3)将\\\句子中的>符号替换符号。

4)如果TREEcolomn为空,请从ORG_NAMEcolomn记录

这是我开始的方式。该SQL查询解决2、3和4部分。如何用1部分解决问题。我想我需要使用REGEXP_REPLACE,对吗?如何正确制作?还有其他更优雅的方式来重新分配sql查询吗?如您所见,我在同一张桌子上走了几次。

SELECT
    COALESCE (TREE, ORG_NAME) as ORGANIZATION
FROM (
    SELECT
        REPLACE(TREE, '\', '>') AS TREE,
        ORG_NAME
    FROM (
        SELECT
            REPLACE(TREE, '\\\', '>') AS TREE,
            ORG_NAME
        FROM
            ORG
    )
)
阿列克谢

这可能是使用aregexp_replace和atrim从字符串的开头和结尾删除字符的一种方式

select nvl(regexp_replace( trim('\' from tree), '\\+', ' > '), org_name)
from yourTable

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章