【SQL】截取字串語法

  • 91696
  • 0

SQL截取字串語法,CHARINDEX用法

我常忘記像A1-123這種要怎麼分開截-_-,只好來做筆記了...
 
首先,介紹一下CHARINDEX這個用法,CHARINDEX('-','A1-123')就是算到-前(包括-號喔)的字元數,所以說SELECT CHARINDEX('-','A1-123') 結果會是3。
所以如果我要取A1的話(也就是-之前的字串),我只需這樣寫:
 

SELECT SUBSTRING('A1-123',1,CHARINDEX('-','A1-123')-1)
或是

SELECT SUBSTRING('A1-123',0,CHARINDEX('-','A1-123'))
如果是要取123,我需要這樣寫:

SELECT SUBSTRING('A1-123',CHARINDEX('-','A1-123')+1,LEN('A1-123')-CHARINDEX('-','A1-123'))
這句語法就是說,把A1-123從-之後取,其中CHARINDEX就是從3開始取(所以我做了+1的動作),長度的設定上當然就是整個字串的長度,減掉(A1-)的長度。
如果各位有更好建議或者是我有誤寫的地方,再請多多指教囉!感謝。