一、基本概念
SQL Server截取是指从字符串中截取部分字符的操作。常用的SQL Server截取函数有SUBSTRING()和LEFT()/RIGHT()。
二、SUBSTRING()函数
SUBSTRING()函数可以截取任意长度的字符,语法格式为:
SUBSTRING(字符串表达式, 开始位置, 截取长度)
其中,字符串表达式为被截取的字符串,开始位置为截取的起始位置,截取长度为需要截取的长度。
示例:
SELECT SUBSTRING('abcdefg', 2, 3) AS result;
返回结果为cde,因为从字符串表达式'abcdefg'中,从第二个位置开始截取三个字符。
三、LEFT()/RIGHT()函数
LEFT()/RIGHT()函数只能截取指定长度的左侧/右侧字符,语法格式为:
LEFT(字符串表达式, 截取长度)
RIGHT(字符串表达式, 截取长度)
其中,字符串表达式为被截取的字符串,截取长度为需要截取的长度。
示例:
SELECT LEFT('abcdefg', 3) AS left_result, RIGHT('abcdefg', 3) AS right_result;
返回结果为abc和efg,因为LEFT()截取了字符串表达式'abcdefg'的前三个字符,RIGHT()截取了后三个字符。
四、对NULL值的处理
如果字符串表达式或截取长度为NULL,则会返回NULL。因此,需要对值为NULL的情况进行特殊处理,避免函数运行出错。
示例:
SELECT SUBSTRING(NULL, 1, 3) AS sub_result, LEFT(NULL, 2) AS left_result, RIGHT('abcd', NULL) AS right_result;
返回结果均为NULL。
五、结合其他函数使用
SQL Server截取函数可以与其他函数结合使用,例如LEN()函数和CHARINDEX()函数,对字符串进行复杂的操作。
示例:
SELECT SUBSTRING('abcdefg', CHARINDEX('d', 'abcdefg'), LEN('abcdefg')-CHARINDEX('d', 'abcdefg')+1) AS result;
返回结果为defg,因为从字符串表达式'abcdefg'中,截取从第一个d字符开始到字符串结尾的所有字符。