关心的信息。
3. LIKE 、 NOT LIKE和 BETWEEN
你已经在上面取出w打头记录的例子中看到了LIKE的用法。LIKE判定词是一个非常有用的符号。不过,在很多情况下用了它可能会带给你太多的数据,所以在用到它之前最好先开动脑筋多想想自己到底想获得什么数据。假设你想取出5位数字的SKU号码,而且其开头是1结尾是5,那么你可以用下划符(_)代替%符号:
SQL = "SELECT * FROM Products WHERE p_sku LIKE ''1___5''"
下划符表示任意一个字符。所以在输入“1 _ _ _ 5”的情况下,你的
搜索就会限制在满足特定模式的5位数范围内了。
假如你想反其道而行之,要找出所有不匹配“1_ _ _ 5”模式的SKU条目。那么你只需要在刚才语句例子中的LIKE前面加上NOT就可以了。
BETWEEN
假设你想取出一定范围内的数据,而且你事先知道范围的起点和终点,那么你不妨采用BETWEEN 判断词。现在就让我们假设你想选取给定表内范围在 1和 10之间的记录。你可以如下使用BETWEEN:
…WHERE ID BETWEEN 1 AND 10
或者你也可以采用已经熟悉的数学判断字句:
…WHERE ID >= 1 AND ID >= 10
4. 联合语句
我们到目前为止所谈到的SQL语句相对较为简单,如果再能通过标准的recordset循环
查询,那么这些语句也能满足一些更复杂的要求。不过,何必非要拘泥在浅尝则止的基础水准之上呢?你完全可以再增加其他一些符号,比如AND、 OR和NOT来完成更强大的功能。
以下面的SQL语句为例:
SQL ="SELECT c_firstname, c_lastname, c_email FROM customers WHERE c_email IS
NOT NULL AND c_purchase = ''1'' OR c_purchase = ''2'' AND c_lastname LIKE
''A%''"
就你目前所掌握的SQL知识,以上的例子也不难解释,不过上面的语句并没有很明白地让你看清条件字句是如何胶合在单一SQL语句中的。
多行语句
在SQL语句不好懂的情况下,你不妨把整个语句分解为多行代码,然后在现有变量基础上逐步增加
查询语句的各个组成部分并把它存在同一变量内:
SQL = "SELECT c_firstname, c_lastname, c_emailaddress, c_phone"
SQL = SQL & " FROM customers"
SQL = SQL & " WHERE c_firstname LIKE ''A%'' and c_emailaddress NOT NULL"
SQL = SQL & " ORDER BY c_lastname, c_firstname"
到了最后一句,SQL变量就包含了以下的完整SELECT 语句:
"SELECT c_firstname, c_lastname, c_emailaddress, c_phone FROM customers
WHERE c_firstname LIKE ''A%'' and c_emailaddress NO NULL ORDER BY c_lastname,
c_firstname"
整句照上面分解之后显然好读多了!在进行调试的时候,你或许更乐于多敲几个字符把
程序改得更好读些。不过你可要记住了,在封闭引号之前或者在打开引号之后你需要增加空格,这样才能保证字符串连接起来的时候你没有把几个词凑到了一块。