有关字符串的处理

来源:互联网 发布:新奥泛能网络科技集团 编辑:程序博客网 时间:2024/06/10 07:34
 

一 处理字符函数

(一)排序规则
1
1)Latin1_General 支持英语
2)字典排序    基于字典排序对字符数据进行排序和比较('A'和'a'<'B'和'b').(排序规则名称中没有显示地出现BIN元素)。如果出现BIN元素,就表示要根据字符的二进制表示对字符数据进行排序和比较('A'<'a'<'B'<'b').
CI 数据不区分大小写('a'='A')
AS 数据区分重音('a'<>'a')-------------声调

2  如果在列的排序规则是不区分大小写的前提下,让过滤条件是区分大小写的,则可以如下修改表达式的排序规则:
SELECT empid,firstname,lastname 
FROM HR.Employees
WHERE lastname COLLATE Latin1_General_CS_AS = N'davis';
这次,查询将返回一个空的结果集,因为当使用区分大小写的比较时,没有找到任何匹配的信息。
(二)运算符和函数
字符串串联运算符(加号[+])
SELECT  empid,firstname,+N''+lastname AS fullname
FROM HR.Employees;

输出:

empid  firstname fullname
1 Sara Davis
2 Don Funk
3 Judy Lew
4 Yael Peled
5 Sven Buck
6 Paul Suurs
7 Russell King
8 Maria Cameron
9 Zoya Dolgopyatova

(三)有关字符串处理
1 LEN 统计字符串长度  --SELECT  LEN('Hello') --尾部空格不计
DATALENGTH 函数 包含尾部空格 (磁盘空间) SELECT  DATALENGTH (N'abcde');

SELECT DATALENGTH
2 转为小写 Lower('HELLO')   转为大写的 UPPER('hello')
3 找位置(某个子串第一次出现的起始位置)  CharIndex('o','hello',1)
  注:第一个参数要查找的(substring),第二个参数原字符串(string),第三个参数是起始位置(start_pos)
 
4 PATINDEX(pattern ,string)函数 返回字符串中某个模式第一次出现的起始位置
例:
 SELECT PATINDEX('%[0-9]%','abcd123efgh');  返回5
注:有点像LIKE谓词

5 REPLACE  替换

SELECT REPLACE('hello world','hello','world')  
输出:world world
注:第一个参数是原始字符串,第二个参数是要替换的字符串,第三个是替换后的字符串

6 STUFF (string ,pos,delete_length,insertstring) 先删除字符串中的一个子串,再插入一个新的字符串作为替换。
例:
SELECT ('XYZ',2,1,'abc')
删除第二个字符,再插入字符串‘abc’

7删除空格
RTRIM LTRIM删除输入字符串中的尾随空格或前导空格
语法
RTRIM(string),LTRIM(string)
既想删除前导空格,又想删除尾随空格,则可以将一个函数的结果作为另一个函数的输入来使用。
例 :
以下代码会删除字符串的前导空格和尾随空格,最后返回‘abc’.
SELECT RTRIM(LTRIM(' abc '))
 

8 SUBSTRING (string ,start,length)函数 (从字符串中提取子串)
SELECT SUBSTRING('abcd',1,3)
注:第一个参数原字符串,第二个参数指定开始位置,第三个截取的长度

9 LIKE 谓词
 1)% (百分号)通配符  代表任意长度的字符串,也包括空字符串。
例  返回姓氏(last name)以字符‘D’开头的所有雇员。
SELECT empid,lastname
FROM HR.Employees
WHERE lastname LIKE N'D%';

2) _(下划线)通配符  表示任意单个字符
例: 返回姓氏(lastname)第二个字符为‘e’的所有雇员
SELECT empid,lastname
FROM HR.Employees
WHERE lastname LIKE N'_e%';
3)
LEFT 和RIGHT函数
LEFT(string ,n),RIGHT(string,n)
参数1表示函数要处理的字符串,参数2表示要从字符串的左边或右边提取的字符个数。例如以下代码返回字符串‘cde’:
SELECT RIGHT('abcde',3);
 


 

原创粉丝点击