我想將以下值使用到表內的不同列中,現在它們存盤到一個我嘗試過 REGEXP_SUBSTR 但我仍然不能單獨使用它們..任何幫助都會
`
SELECT
REGEXP_SUBSTR('One Thousand Four Hundred Forty Six', '[^ ] ', 1, level) AS parts
FROM dual
CONNECT BY REGEXP_SUBSTR('One Thousand Four Hundred Forty Six', '[^ ] ', 1, level) IS NOT NULL;
the output should be like this :
column A : One Thousand
column B : Four Hundred
column C : Forty Six
`
以上是我的嘗試
uj5u.com熱心網友回復:
如果您將模式更改為:
'[^ ] ( [^ ] )?'
然后它會發現一個單詞可選地后跟一個空格和另一個單詞 - 所以如果你從奇數個單詞開始它仍然可以作業。
那么您的查詢可能是:
SELECT
REGEXP_SUBSTR('One Thousand Four Hundred Forty Six', '[^ ] ( [^ ] )?', 1, level) AS parts
FROM dual
CONNECT BY REGEXP_SUBSTR('One Thousand Four Hundred Forty Six', '[^ ] ( [^ ] )?', 1, level) IS NOT NULL;
| 部分 |
|---|
| 一千 |
| 四百 |
| 四十六 |
小提琴
如果您希望它們分成單獨的列而不是行,那么您需要知道允許多少個 - 即您可能必須處理的最大單詞數。然后,您可以執行以下操作,而不是分層查詢:
SELECT
REGEXP_SUBSTR('One Thousand Four Hundred Forty Six', '[^ ] ( [^ ] )?', 1, 1) AS part1,
REGEXP_SUBSTR('One Thousand Four Hundred Forty Six', '[^ ] ( [^ ] )?', 1, 2) AS part2,
REGEXP_SUBSTR('One Thousand Four Hundred Forty Six', '[^ ] ( [^ ] )?', 1, 3) AS part3
FROM dual
| 第1部分 | 第2部分 | 第三部分 |
|---|---|---|
| 一千 | 四百 | 四十六 |
小提琴
uj5u.com熱心網友回復:
你有[^ ] 找到一個單詞的正則運算式(沒有空格的相鄰字符)。
您需要一個查找兩個單詞(一個單詞、一個空白、一個單詞)的正則運算式:[^ ] [^ ] .
SELECT
REGEXP_SUBSTR(str, '[^ ] [^ ] ', 1, level) AS parts
FROM (select 'One Thousand Four Hundred Forty Six' as str from dual)
CONNECT BY REGEXP_SUBSTR(str, '[^ ] [^ ] ', 1, level) IS NOT NULL;
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/530920.html
標籤:sql甲骨文
下一篇:將整個實際行傳遞給函式
