我常忘記像A1-123這種要怎麼分開截-_-,只好來做筆記了...
首先,介紹一下CHARINDEX這個用法,CHARINDEX('-','A1-123')就是算到-前的字元數,所以說SELECT CHARINDEX('-','A1-123') 結果會是3。
所以如果我要取A1的話(也就是-之前的字串),我只需這樣寫:SUBSTRING('A1-123',0,CHARINDEX('-','A1-123'))
如果是要取123,我需要這樣寫:SUBSTRING('A1-123',CHARINDEX('-','A1-123'),LEN('A1-123'))
這句語法就是說,把A1-123從-之後取,其中CHARINDEX就是從3開始取,取到A1-123的最後一個字(長度就會等於最後一個字的位子...不過應該會多1?)。
因為SUBSTRING是從0開始,所以3就會是1而不是-。(經實驗發現這邊應該是錯的...)
如果各位有更好建議或者是我有誤寫的地方,再請多多指教囉!感謝。
後來我發現SUBSTRING('A1-123',CHARINDEX('-','A1-123')+1,LEN('A1-123'))才是正確的寫法.....
- Sep 24 Mon 2012 11:42
-
【SQL】截取字串語法分享
請先 登入 以發表留言。