microsoft SQL Server 中提供了一些众多的函数,其中MID函数是SQL Server中最常用的字符串函数之一,用于提取子字符串。MID()的一般形式为MID (string,start,length),其中string是一个字符串,start表示开始位置,length表示长度。例如,MID(’Hello World’,’6′,’5′)的结果为“World”,即从’Hello World’中第6个字符开始,抓取长度为5的子字符串。
使用MID()函数可以根据某个指定的关键字抓取相应的子字符串,例如抓取一个字符串“index=123&name=Harry”中name对应的内容“Harry”,首先通过CHARINDEX()函数定位到“name”后面第一个字符’H’位置,然后使用MID()函数从这个位置抓取长度为5的子字符串,代码如下:
“`lin
SELECT MID(‘index=123&name=Harry’,CHARINDEX(‘name’, ‘index=123&name=Harry’)+5,5) AS NAME
最后,MID()函数还可以用于抓取特定类别的数据,我们经常会遇到一些逗号分隔的字符串,可以使用如下代码获取其中指定位置的值:
```lin
declare @str nvarchar(1024);
set @str='Harry,Jenny,David,Emma,James';
select mid(@str,charindex(',',@str,charindex(',',@str)+1)+1,
charindex(',',@str,charindex(',',@str,charindex(',',@str)+1)+1) -
charindex(',',@str,charindex(',',@str)+1)-1)
上面的代码用来抓取@str中第3个元素“David”,当然,也可以只写成MID()函数,就算字符串变长了,它也能自动计算长度。
总之,MID()函数可以帮助我们用简单的代码方便的从字符串中抓取字串,大大提高了工作效率。