sqlserver數據庫,使用substring函數截取不固定位置字符串。
當我們在向頁面寫入數據庫查詢出來的數據的時候,有一些不必要的字符串,相信大家肯定會在後臺的java代碼中進行處理再返回到頁面上。今天遇到一個無法使用後臺處理的功能,只能使用sql語句來進行處理。今天記錄一下,方便以後查詢。
上面是查詢出來的數據。現在想要將裏面的姓名取出來,但是使用截取的話,每個人的姓名長度可能會不一樣,有兩個字,或者四個字都有可能。所以截取的長度也就不一樣。
解決方法就是用sqlserver中charindex 函數,配合 substring來進行截取字符串。
substring(
hv.TEXT_,
charindex('】', hv.TEXT_) + 1,
charindex(',', hv.TEXT_)- 5
) as newManager
這是截取字符串的代碼。給大家解釋一下什麼意思:
substring:數據庫中截取的函數。
hv.TEXT_:數據庫表中的字段名。
charindex(’】’, hv.TEXT_) + 1,:這段代碼,就是利用 charindex函數,計算出’ 】‘這個字符第一次出現位置的角標值是多少。
charindex(’,’, hv.TEXT_)-5:這是計算出 ‘,’這個字符第一次出現的角標置。
看圖:
至於加減的操作相信大家先按照sql查詢一下就會看明白。
over~