本文主要是介绍SQL数据库开发—TSQL-—运算符2不常用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一 select 运算符优先级
级别 运算符
0 ()
1 ~(位非)
2 *(乘)、/(除)、%(取模)
3 +(正)、-(负)、+(加)、+(串联)、-(减)、&(位与)、^(位异或)、|(位或)
4 =、>、<、>=、<=、<>、!=、!>、!<(比较运算符)
5 NOT
6 和
7 ALL、ANY、BETWEEN、IN、LIKE、OR、SOME
8 =(赋值)
二 位运算符 (Transact-SQL)
位运算符的操作数可以是整数或二进制字符串数据类型类别中的任何数据类型(image 数据类型除外),但两个操作数不能同时是二进制字符串数据类型类别中的某种数据类型。 下表显示所支持的操作数数据类型。
- &(位与) 如果两个位置上的位均为 1,则结果为 1。
- &=(位与赋值)
- |(位或) 如果两个位置上任意一个位置的位为 1,则结果为 1。
- |=(位或赋值)
- ^(位异或) 对每个位位置上的位值取反。
- ^=(位异或赋值)
运算符后的表达式 | 位运算 |
---|---|
与 如果两个位置上的位均为 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 数据类型除外),但两个操作数不能同时是二进制字符串数据类型类别中的某种数据类型。 下表显示所支持的操作数数据类型。
左操作数 | 右操作数 |
---|---|
binary | int、smallint 或 tinyint |
bit | int、smallint、tinyint 或 bit |
int | int、smallint、tinyint、binary 或 varbinary |
smallint | int、smallint、tinyint、binary 或 varbinary |
tinyint | int、smallint、tinyint、binary 或 varbinary |
varbinary | int、smallint 或 tinyint |
三 字符串运算符
3.1 +(字符串串联)(Transact-SQL)
字符和二进制数据类型类别中的任何一个数据类型的有效表达式,但 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)
3.2 +=(字符串串联赋值)(Transact-SQL)
将两个字符串串联起来并将一个字符串设置为运算结果。 例如,如果变量 @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.
3.3 %百分比字符(通配符 - 需匹配的字符)(Transact-SQL)
3.4 [ ](通配符 - 要匹配的字符)(Transact-SQL)
匹配指定范围内或者属于方括号 [ ]
所指定的集合中的任意单个字符。 可以在涉及模式匹配的字符串比较(例如,LIKE
和 PATINDEX
)中使用这些通配符。
复制
SELECT name FROM sys.databases
WHERE name LIKE 'm[n-z]%';
下面是结果集:
复制
name
-----
model
msdb
3.5 [^](通配符 - 无需匹配的字符)(Transact-SQL)
匹配不在方括号之间指定的范围或集合内的任何单个字符。
示例
下面的示例使用 [^] 运算符在 Contact
表中查找所有名字以 Al
开头且第三个字母不是字母 a
的所有人。
- Uses AdventureWorks SELECT FirstName, LastName FROM Person.Person WHERE FirstName LIKE 'Al[^a]%' ORDER BY FirstName;
3.6 通配符 - 匹配一个字符)(Transact-SQL)
下划线字符 用于匹配涉及模式匹配的字符串比较操作(如 LIKE
和 PATINDEX
)中的任何单个字符。
SQL复制
SELECT name FROM sys.databases
WHERE name LIKE 'm_d%';
下面是结果集:
复制
name
-----
model
msdb
这篇关于SQL数据库开发—TSQL-—运算符2不常用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!