2016-03-18 113 views
-2

這裏是我的字符串,我使用獲取使用sql的子字符串之前的字符串?

SET @str = 025-121-3453 

我想用SQL

假設exression表達之前和表達後得到的字符串的一部分,這是

SELECT SUBSTRING(String, 
LEN(LEFT(String, CHARINDEX ('121', String))) + 1, LEN(String) 
- LEN(LEFT(String, 
CHARINDEX ('121', String))) - LEN(RIGHT(String, LEN(String) - 

    CHARINDEX ('121', String))) - 1) FROM StringPatternData WHERE String = '025-121-3453'; 

輸出

in 1 query out put will'025-'&在另一個「-3453」

+4

你的問題還不清楚。試着解釋你想要做什麼。 –

+2

總是相同的格式? – jarlh

+0

現在很明確字符串在特定文本之前 –

回答

0

您可以使用一些內置的功能做到這一點:

DECLARE @str VARCHAR(100) = '025-121-3453' 

SELECT LEFT(@str, CHARINDEX('121', @str) - 1) , 
     RIGHT(@str, CHARINDEX('121', REVERSE(@str)) - 1) 

請注意,您必須在查詢的第二部分提供扭轉格局。即如果你正在分裂123,第二種模式應該是321

+0

thankyou ..................... –

0

只是爲了好玩這裏是另一種方式,你可以做到這一點。

DECLARE @str VARCHAR(100) = '025-121-3453' 

select PARSENAME(replace(@str, '-', '.'), 3) 
    , PARSENAME(replace(@str, '-', '.'), 1) 
+0

沒有必要的樂趣我有其他的字符串 –

+0

這是什麼意思? –

相關問題