以下示例说明了使用 select ?sql 用户自定义函数的用法:
示例 1
示例 1 显示了 customer 表中所有的公司名称(来自一个表的一个字段)。
close all
close databases
open database (home(2) + 'data\testdata')
select customer.company ;
from customer
示例 2
示例 2 显示了来自两个表中三个字段的内容及两个表基于 cust_id 字段的连接。两个表均使用了本地别名。
close all
close databases
open database (home(2) + 'data\testdata')
select a.company, b.order_date, b.shipped_on ;
from customer a, orders b ;
where a.cust_id = b.cust_id
示例 3
示例 3 显示了在指定字段只有唯一数据的记录。
close all
close databases
open database (home(2) + 'data\testdata')
select distinct a.company, b.order_date, b.shipped_on ;
from customer a, orders b ;
where a.cust_id = b.cust_id
示例 4
示例 4 以升序次序显示了 country、postalcode 和 company 字段。
close all
close databases
open database (home(2) + 'data\testdata')
select country, postalcode, company ;
from customer ;
order by country, postalcode, company
示例 5
示例 5 将来自两个表的字段内容存储在第三个表中。
close all
close databases
open database (home(2) + 'data\testdata')
select a.company, b.order_date, b.shipped_on ;
from customer a, orders b ;
where a.cust_id = b.cust_id ;
into table custship.dbf
browse
示例 6
示例 6 显示订单 (order) 日期早于 1994 年 2 月 16 日的记录。
close all
close databases
open database (home(2) + 'data\testdata')
select a.company, b.order_date, b.shipped_on ;
from customer a, orders b ;
where a.cust_id = b.cust_id ;
and b.order_date < {^1994-02-16}
示例 7
示例 7 显示 customer 表中邮政编码与 orders 表的邮政编码相匹配的所有公司名。
close all
close databases
open database (home(2) + 'data\testdata')
select company from customer a where
;
exists (select * from
orders b where a.postalcode = b.postalcode)
示例 8
示例 8 显示 customer 表中公司名以大写的 c 开头,但长度未定的所有记录。
close all
close databases
open database (home(2) + 'data\testdata')
select * from customer a where
a.company like "c%"
示例 9
示例 9 显示 customer 表中国家名以大写的 u 开头其后跟着未知字母的所有记录。
close all
close databases
open database (home(2) + 'data\testdata')
select * from customer a where
a.country like "u_"
示例 10
示例 10 以大写方式,输出列为 citylist 显示所有城市名。
close all
close databases
open database (home(2) + 'data\testdata')
select upper(city) as citylist from
customer
示例 11
示例 11 演示了您可以执行在包含百分比符号 (%) 数据上查询的方式。在百分比之前放置的反斜线 (\) 表示应该将百分比符号当作字符处理,而 escape子句中的反斜线指定为转义字符。
因为在 visual foxpro 的示例表中不包含百分比符号,所以查询没有返回结果。
close all
close databases
open database (home(2) + 'data\testdata')
select * from customer;
where company like "%\%%" escape "\"
示例 12
示例 12 演示了您可以执行在包含下划线符号 (_) 数据上查询的方式。在下划线之前放置的反斜线 (\) 表示应该将下划线符号当作字符处理,而 escape子句中的反斜线指定为转义字符。
因为在 visual燜oxpro 的示例表中不包含下划线符号,所以查询没有返回结果。
close all
close databases
open database (home(2) + 'data\testdata')
select * from customer;
where company like "%\_%" escape "\"
示例 13
在示例 13 中,转义字符使用它自身的含义。短划线既是转义字符同时也是具有意义字符。查询返回公司名包含百分号后跟着短划线的所有行。
因为在 visual燜oxpro 的示例表中不包含百分比符号,所以查询没有返回结果。
close all
close databases
open database (home(2) + 'data\testdata')
select * from customer;
where company like "%-%--%" escape "-"