我正在尋找從SQL表中的註釋字段中只提取一部分字符串。當前字符串如下所示:「TN:mba卡車運輸| HR:cf82267 | TR:solomon | AI:| N/A」。我想要做的是從TN中選擇任何東西:直到下一個管道。然後我想從HR選擇任何東西:直到下一個管道。請注意,這些參數之間的數據並不總是相同的長度,因此不能使用SUBSTRING
。在兩個已知字符串元素之間選擇SQL字段的一部分
1
A
回答
0
例如:
我寫了這個代碼給我弄一個字符串
SELECT DISTINCT A.REZ FROM
(
SELECT REGEXP_SUBSTR('1213-1201+1202+1203+1204+1205+1206+1207+1208+1209+1210+1211', '[0-9]+', 1, LEVEL) AS REZ FROM dual
CONNECT BY REGEXP_SUBSTR('1213-1201+1202+1203+1204+1205+1206+1207+1208+1209+1210+1211', '[0-9]+', 1, LEVEL) IS NOT NULL
) A;
你可以寫你的正則表達式從每個管之間得到裏面的話號碼列表
所以,它會是這樣的:
SELECT A.REZ FROM
(
SELECT REGEXP_SUBSTR(Your_Var, Your_Regular_Expression, 1, LEVEL) AS REZ FROM dual
CONNECT BY REGEXP_SUBSTR(Your_Var, Your_Regular_Expression, 1, LEVEL) IS NOT NULL
) A;
凡Your_Var
將持有你想
而且Your_Regular_Expression
工作將是您需要構建能夠滿足您的需求
注意正則表達式的文字:這是Oracle SQL語法
0
對於Oracle你可以使用instr和substr,根據不同的強度靈活。在我的例子中,我沒有創建一個表,我可以從中選擇你的samplestring。因此它有點笨重。如果你可以使用普通的字段名而不是重複字符串,它看起來會更緊湊。
SELECT SUBSTR('TN:mba trucking|HR:cf82267|TR:solomon|AI:|N/A',
INSTR('TN:mba trucking|HR:cf82267|TR:solomon|AI:|N/A', 'TN:'),
INSTR('TN:mba trucking|HR:cf82267|TR:solomon|AI:|N/A', '|') - 1)
FROM dual;
我包括-1切割管關閉。如果你願意,你也可以減少關閉。這是一個非常基本的方式,而不是最好的解決方案。如果文本包含instr-function中要查找的一些關鍵字,則會出現問題。根據整體情況,使用一些正則表達式可能是明智的,比如之前提到的simsim。
相關問題
- 1. 一個SQL查詢選擇兩個已知字符串之間的字符串
- 2. 選擇兩個括號之間的字符串的一部分
- 3. SQL選擇兩個字符串之間的字符串
- 4. 查找兩個已知字符之間的未知字符串
- 5. SQL - 一個字符串選擇部分
- 6. SQL選擇字符串中兩個字符之間的數據
- 7. SQL服務器 - 選擇兩個已知的字符串
- 8. 選擇值在SQL中的兩個字符串之間的值
- 9. 選擇兩個已知字符串之間的字符串並輸出大於一個
- 10. 通過它的類部分字符串選擇一個元素
- 11. 在Scala中的兩個字符之間選擇子字符串
- 12. SQL根據一個字段的值在兩個字段之間進行選擇
- 13. 需要獲取字符串部分之間兩個/在一個字符串
- 14. 在字符串SQL服務器中的兩個字符之間選擇值
- 15. 在兩個字符之間選擇Susbtr字段
- 16. 刪除兩個字符串之間的字符串的一部分
- 17. 在PowerShell中的兩組字符之間選擇字符串
- 18. 兩個字符串之間的交集的第一部分
- 19. 選擇字符串的一部分時,發現一個字符
- 20. 選擇部分字符串
- 21. 選擇部分字符串
- 22. 替換爲兩個已知串之間的未知字符串sed的
- 23. 在KornShell中選擇兩個單詞之間的字符串
- 24. 的XPath XSLT:選擇兩個其他元素之間的元素,第二部分
- 25. jQuery選擇兩個字符串標識符之間的HTML
- 26. 如何提取bash中兩個字符之間的一部分字符串?
- 27. 兩個字符串之間
- 28. C:分割字符串並選擇最後一個元素
- 29. SQL Oracle - 在兩個元音之間替換字符串
- 30. SQL - 使用另一個字段的字符串的一部分更新字段
請問哪個RDBMS。對於Sql-Server,請參見[這裏](http://stackoverflow.com/questions/2647/split-string-in-sql) – StuartLC
哪個數據庫? Oracle,SQLServer,MySQL? – Incognito
對於Oracle請看[instr](http://docs.oracle.com/cd/B28359_01/olap.111/b28126/dml_functions_1103.htm) – Streuner