通配符、拼接字段

通配符有些像其他语言中的正则表达式,在过滤模糊值时会很有用。通配符本身实际上是SQL的WHERE子句中有特殊含义的字符,SQL支持集中通配符。为在搜索子句中使用,必须使用LIKE操作符。通配符搜索只能用于文本字段也就是字符串,其他不可用。
1、“%”:表示任意字符出现任意次数(在ACCESS中为*)包括0个。但‘%’不能匹配NULL。

USE mytest1
SELECT *
FROM Table_1 
WHERE Favorite LIKE 'd%';

这里写图片描述
可以使用多个%

USE mytest1
SELECT *
FROM Table_1 
WHERE 姓名  LIKE '%l%';

这里写图片描述
2、“_”通配符:只匹配单个字符(DB2中不支持,Access中为”?”)

USE mytest1
SELECT *
FROM Table_1 
WHERE 姓名  LIKE '%l_';

这里写图片描述
所有DBMS都支持的通配符就这两个,另外使用通配符尽量不要在搜索模式的开始处,这样会很慢。

拼接字段:当表中的任意列数据都不是我们想要的,但通过计算或拼接才是时我们就会用到拼接字段。
拼接:Access和SQL Server 使用“+”,DB2、Orcle、PostgreSQl等中使用“||”。

USE mytest1
SELECT 姓名 + '('+年龄 +')'
FROM Table_1 
WHERE 姓名  LIKE '%l_';

这里写图片描述
可以看到年龄列中多了很多括号,这是因为SQL的字符对齐功能,如果要去掉,在选择年龄时用RTRIM(年龄)函数即可。

USE mytest1
SELECT 姓名 + '('+RTRIM (年龄) +')'
FROM Table_1 
WHERE 姓名  LIKE '%l_';

这里写图片描述
如果这个后拼接的列以后要用到应该给他取个名,用AS关键字。这样他就 和其他表列一样。

USE mytest1
SELECT 姓名 + '('+RTRIM (年龄) +')'
AS addTitle
FROM Table_1 
WHERE 姓名  LIKE '%l_';

这里写图片描述
计算列:选择列时可以用“+-*/”等计算,然后AS为一个新列输出。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章