在我的表中,我有一列包含兩個 ID:
例子:
| 評論 |
|---|
| 內部訊息 ID:7878 外部訊息 ID:788CBNCGD9_3_5_87BFHJD |
| 內部訊息 ID:90278 外部訊息 ID:788H2692029_3_5_8890ZG |
我想得到兩列:內部 ID 和外部 ID
| 內部標識 | 外部 ID |
|---|---|
| 7878 | 788CBNCGD9_3_5_87BFHJD |
| 90278 | 788H2692029_3_5_8890ZG |
我一直在考慮使用子字串,但我不知道如何使用。
有人能幫我嗎?
uj5u.com熱心網友回復:
老實說,我建議在源頭修復您的設計,而不是將本質上是分隔的資料插入到您想要使用的資料庫中。
但是,在我們擁有的示例資料上,您可以使用 SQL Server 的基本字串操作來實作這一點:
SELECT SUBSTRING(V.Comment,CI1.I,CI2.I-CI1.I),
SUBSTRING(V.Comment,CI3.I, ISNULL(NULLIF(CI4.I,0),LEN(V.Comment) 1) - CI3.I)
FROM (VALUES('Internal message ID: 7878 External message ID: 788CBNCGD9_3_5_87BFHJD'),
('Internal message ID: 90278 External message ID: 788H2692029_3_5_8890ZG'))V(Comment)
CROSS APPLY (VALUES(CHARINDEX(':',V.Comment) 2))CI1(I)
CROSS APPLY (VALUES(CHARINDEX(' ',V.Comment,CI1.I)))CI2(I)
CROSS APPLY (VALUES(CHARINDEX(':',V.Comment,CI2.I) 2))CI3(I)
CROSS APPLY (VALUES(CHARINDEX(' ',V.Comment,CI3.I)))CI4(I);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/353033.html
標籤:sql sql-server 子串
