本文共 2348 字,大约阅读时间需要 7 分钟。
级别 运算符
0 () 1 ~(位非) 2 *(乘)、/(除)、%(取模) 3 +(正)、-(负)、+(加)、+(串联)、-(减)、&(位与)、^(位异或)、|(位或) 4 =、>、<、>=、<=、<>、!=、!>、!<(比较运算符) 5 NOT 6 和 7 ALL、ANY、BETWEEN、IN、LIKE、OR、SOME 8 =(赋值)
位运算符的操作数可以是整数或二进制字符串数据类型类别中的任何数据类型(image 数据类型除外),但两个操作数不能同时是二进制字符串数据类型类别中的某种数据类型。 下表显示所支持的操作数数据类型。
运算符后的表达式 | 位运算 |
---|---|
与 如果两个位置上的位均为 1,则结果为 1。 | 1010 1010 = 170 0100 1011 = 75 ----------------- 0000 1010 = 10 |
或 如果两个位置上任意一个位置的位为 1,则结果为 1。 | 1010 1010 = 170 0100 1011 = 75 ----------------- 1110 1011 = 235 |
NOT 对每个位位置上的位值取反。 | 1010 1010 = 170 ----------------- 0101 0101 = 85 |
位运算符的操作数可以是整数或二进制字符串数据类型类别中的任何数据类型(image 数据类型除外),但两个操作数不能同时是二进制字符串数据类型类别中的某种数据类型。 下表显示所支持的操作数数据类型。
左操作数 | 右操作数 |
---|---|
int、smallint 或 tinyint | |
int、smallint、tinyint 或 bit | |
int、smallint、tinyint、binary 或 varbinary | |
int、smallint、tinyint、binary 或 varbinary | |
int、smallint、tinyint、binary 或 varbinary | |
int、smallint 或 tinyint |
字符和二进制数据类型类别中的任何一个数据类型的有效,但 image、ntext 或 text 数据类型除外。 两个表达式必须具有相同的数据类型,或者其中一个表达式必须能够隐式转换为另一个表达式的数据类型。
SELECT user_name + '_' + USER_PWD s FROM A70_USERS_ZH
张春生_4959
朱艳平_4926
SELECT 'The order is due on ' + CONVERT(varchar(12), DueDate, 101) FROM Sales.SalesOrderHeader WHERE SalesOrderID = 50001; GO
下面是结果集:
------------------------------------------------ The order is due on 04/23/2007 (1 row(s) affected)
将两个字符串串联起来并将一个字符串设置为运算结果。 例如,如果变量 @x 等于 'Adventure',则 @x += 'Works' 会接受 @x 的原始值,将 'Works' 添加到该字符串中并将 @x 设置为该新值 'AdventureWorks'。
DECLARE @v1 varchar(40); SET @v1 = 'This is the original.'; SET @v1 += ' More text.'; PRINT @v1;
下面是结果集:
This is the original. More text.
匹配指定范围内或者属于方括号 [ ]
所指定的集合中的任意单个字符。 可以在涉及模式匹配的字符串比较(例如,LIKE
和 PATINDEX
)中使用这些通配符。
复制
SELECT name FROM sys.databasesWHERE name LIKE 'm[n-z]%';
下面是结果集:
复制
name-----modelmsdb
匹配不在方括号之间指定的范围或集合内的任何单个字符。
下面的示例使用 [^] 运算符在 Contact
表中查找所有名字以 Al
开头且第三个字母不是字母 a
的所有人。
- Uses AdventureWorks SELECT FirstName, LastName FROM Person.Person WHERE FirstName LIKE 'Al[^a]%' ORDER BY FirstName;
下划线字符 用于匹配涉及模式匹配的字符串比较操作(如 LIKE
和 PATINDEX
)中的任何单个字符。
SQL复制
SELECT name FROM sys.databasesWHERE name LIKE 'm_d%';
下面是结果集:
复制
name-----modelmsdb
转载地址:http://dobai.baihongyu.com/