我的表中有一個varchar column
,我需要能夠從中間隔離一些文本,以便我可以使用它來查找信息從另一張桌子。從SQL Server中的varchar字段中間分離文本
此列可能包含文本的一個例子是這樣的:
0A10-Deeside PKG AHU-G37-Pa-A is out of range (Current value of 12.000000 is greater than the maximum value of 5.000000)
在這個例子中,0A10-Deeside
是數據,我們在同一個表的另一列名爲AssetID
,並且可以是任何長度的。同樣,從「超出範圍」開始的文本可以是任意長度,但總是以字符串「超出範圍」開始。
這是資產ID和「超出範圍」之間的文本,我需要隔離,(PKG AHU-G37-Pa-A)
但我很努力地找到一種方式,因爲這也將是不同的長度,所以使用它的SubString自己是不可能的。
任何方法?我正在使用MS SQL Server 2008
是否所有的行都是這樣的? – Mark
這聽起來像你應該有多列包含你的數據,而不只是一個。這樣你就不需要爲簡單的JOIN/lookup做字符串操作。 – HansLindgren
不,不是所有的行都是這樣的,但我們只會處理那些。 在正常情況下,多列顯然是最有意義的,但在這裏我們基本上試圖解析從第三方系統寫入表中的數據。我們無法控制格式化或哪些數據被傳送(或傳送到哪裏)。 我們試圖提取的數據(我們稱之爲SpecName)很遺憾不是由第三方編寫的,所以我們必須嘗試從這個字符串中提取它。上帝保佑書寫不好的整合;) –