我需要幫助獲取一列中空格之間的值。對於下面的要求,我會需要第一個空格後的值。sql服務器獲得一列中空格之間的值
我有多個行柱:
原始列
Microsoft SQL Server
Oracle DB Server
Delete From Table Name
SELECT as123 987
預期輸出是
Expected_Output
SQL
DB
From
as123
我需要幫助獲取一列中空格之間的值。對於下面的要求,我會需要第一個空格後的值。sql服務器獲得一列中空格之間的值
我有多個行柱:
原始列
Microsoft SQL Server
Oracle DB Server
Delete From Table Name
SELECT as123 987
預期輸出是
Expected_Output
SQL
DB
From
as123
這種類型的問題的一個竅門是使用parsename()
。我認爲有以下你想要做什麼,假設沒有時間在名稱:
select parsename(replace(val, ' ', '.'), 2)
Here就是一個例子。
編輯:
Sgeddes是正確的。如果你一直希望第二個名稱,可以有三個或四個部分,然後reverse()
可用於:
select reverse(parsename(replace(reverse(val), ' ', '.'), 2))
(這似乎是一個值確實有四個部分,我本來讀爲「刪除表名「)。
試試這個。使用Substring, Charindex and Left string function
獲取該值。
select left(substring(Col,charindex(' ',Col)+1,len(Col)),charindex(' ',substring(Col,charindex(' ',Col)+1,len(Col))))
請分享您到目前爲止嘗試過的查詢。你將需要SubString和CharIndex函數來獲得結果。 – danish
找到第一個空格,找到下一個空格(起始空格後的起始字符),來自這兩個索引點的子字符串。 (CHARINDEX) –