Chinaunix首页 | 论坛 | 博客
  • 博客访问: 591233
  • 博文数量: 80
  • 博客积分: 3315
  • 博客等级: 中校
  • 技术积分: 697
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-27 12:46
文章分类

全部博文(80)

文章存档

2014年(3)

2013年(3)

2012年(5)

2011年(19)

2010年(50)

我的朋友

分类: Oracle

2010-06-07 14:20:08

SQL 通配符

与任意单字符匹配 
%    与包含一个或多个字符的字符串匹配 
[ ]  与特定范围(例如,[a-f])或特定集(例如,[abcdef])中的任意单字符匹配。 
[^]  与特定范围(例如,[^a-f])或特定集(例如,[^abcdef])之外的任意单字符匹配。

例子:

• WHERE FirstName LIKE '_im' 可以找到所有三个字母的、以 im 结尾的名字(例如,Jim、Tim)。 
• WHERE LastName LIKE '%stein' 可以找到姓以 stein 结尾的所有员工。 
• WHERE LastName LIKE '%stein%' 可以找到姓中任意位置包括 stein 的所有员工。 
• WHERE FirstName LIKE '[JT]im' 可以找到三个字母的、以 im 结尾并以 J 或 T 开始的名字(即仅有 Jim 和 Tim) 
• WHERE LastName LIKE 'm[^c]%' 可以找到以 m 开始的、后面的(第二个)字母不为 c 的所有姓。 
附:如果你想要查找包括 % 这个字符的字符串,你需要对%字符进行转义使oracle不再把它当作一个通配符来处理。想要达到这样的效果,你需要使用ESCAPE子句来使oracle明白你选择哪个字符作为转义字符,如下所示: 
SELECT instructions 
FROM cust_order 
WHERE instructions LIKE '%\%%' ESCAPE '\'; 
使用\作为转义字符,返回instructions列的值中包含%字符的所有行。

SQL 注释符、运算符与通配符

4.5.1注释符(Annotation) 
在Transact-SQL 中可使用两类注释符。 
ANSI 标准的注释符“--” 用于单行注释; 
与C语言相同的程序注释符号,即“/**/”。“/*”用于注释文字的开头,“*/”用于注释文字的结尾,可在程序中标识多行文字为注释。 
4.5.2 运算符(Operator) 
    1 算术运算符 
包括:+(加)、―(减)、(乘)、(除)、%(取余) 
    2 比较运算符 
包括:>(大于)<(小于)、= (等于)、>=(大于等于)、<=(小于等于)、<> 
(不等于)、!=(不等于)、!>(不大于)!<( 不小于) 
其中!=、!>、!<不是ANSI标准的运算符。 
    3 逻辑运算符 
包括:AND(与)、OR(或)、NOT(非) 
    4 位运算符 
包括:按位与、|(按位或)、~(按位非)^(按位异或) 
    5 连接运算符 (sql server)
连接运算符“+”用于连接两个或两个以上的字符或二进制串、列名或者串和列的混合体,将一个串加入到另一个串的末尾。其语法如下: 

例4-7 
use pangu 
declare@startdate datetime 
set@startdate=‘1/1/2000’ 
select‘Start Date:’+convert(varchar(12)@startdate) 
--convert()函数用于转换数据类型,见4.8.4 
运行结果如下: 
Start Date:Jan 1 2000 
例4-8: 
use pangu 
select‘月薪最高的员工是:‘+ e_name+’月薪为:‘+convert(varchar(10)e_wage 
from employee 
where e_wage= 
(select max (e_wage) 
from employee) 
运行结果如下: 
月薪最高的员工是:张三月薪为8000.00 
(1 row (s) affected) 

 6 连接运算符 (oracle)

oracle 列别名 使用 双引号 特殊字符 区分 大小写 连接 运算符 字符串 || 双竖线

在列别名上使用双引号 
输入并执行查询: 

Sql代码 
SELECT ename AS "Name", sal*12+5000 AS "年度工资(加年终奖)" FROM emp;  
显示结果为: 
Sql代码
  1. Name       年度工资(加年终奖)  
  2.         --------------- ----------------------------  
  3.         SMITH                 14600  
  4.         ALLEN                 24200  

说明:其中别名“Name”有大小写的区别,别名“年度工资(加年终奖) ”中出现括号,属于特殊符号,所以都需要使用双引号将别名引起。 

连接运算符 
sql语句可以使用包含数值运算的计算列,显示结果也是数值型的。我们也可以使用字符型的计算列,方法是在查询中使用连接运算。连接运算符是双竖线“||”。通过连接运算可以将两个字符串连接在一起。 
在查询中使用连接运算。 
输入并执行查询: 

Sql代码 
  1. SELECT  ename||job AS "雇员和职务表" FROM emp;  

输出结果为: 
Sql代码 
  1. 雇员和职务表  
  2.         -------------------  
  3.         SMITHCLERK  
  4.         ALLENSALESMAN  

说明:在本例中,雇员名称和职务列被连接成为一个列显示。 
在查询中可以使用字符和日期的常量,表示固定的字符串或固定日期。字符和日期的常量需要用单引号引起。下一个训练是作为上一个训练的改进。 
在查询中使用字符串常量。 
输入并执行查询: 
Sql代码 
  1. SELECT  ename|| ' IS '||job AS "雇员和职务表" FROM emp;  

输出结果为: 
Sql代码 
  1. 雇员和职务表  
  2.     -----------------------  
  3.     SMITH IS CLERK  
  4.     ALLEN IS SALESMAN  

说明:本练习中将雇员名称、字符串常量“ IS ”和雇员职务3个部分连接在一起。 

在Transact-SQL中运算符的处理顺序如下所示,如果相同层次的运算出现在一起时则处理顺序位从左到右。 
括号 () 
位运算符 ~ 
算术运算符 *、/、% 
算术运算符 +、- 
位运算符 ^ 
位运算符 & 
位运算符 | 
逻辑运算符 NOT\ 
逻辑运算符 AND 
逻辑运算符 OR 
4.5.3 通配符Wildcard 
%  代表0个或多个字符 
_(下划线)  代表一个字符 
[]   表示在某一范围内的字符 
[^]  表示不在某一范围内的字符

阅读(6194) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~