通配符有些像其他语言中的正则表达式,在过滤模糊值时会很有用。通配符本身实际上是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为一个新列输出。