select - sql 命令示例

以下示例说明了使用 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 "-"