我也才开始教这门课程,愿意与你共同学习。
1.显示姓名中含“张”的记录。
Display all for "张"$姓名
或 list for at("张",姓名)<>0
2.显示姓名中姓为“张”的记录。
set exact off
Display all for 姓名="张"
(只有在模糊比较前提下才可以,当然系统默认是off状态)
3.将姓为“张”的记录复制到NEW.dbf中。
Copy all for "张"=Substr(姓名,1,2) to new
(此命令绝对正确,而且等号左右两侧可以交换,与字符串是精确比较还是模糊比较无关,因为是从姓名中取第一个字符与“张”做比较。这样写也正确:
set exact off
copy for 姓名="张" to new )
答案不是唯一的,但必须弄懂区别。
姓名="张"、姓名="张%"、姓名="%张%"、姓名="张?"、"张"$姓名、"张"=Substr(姓名,1,2)各在什么时候用?
姓名="张" 是查找张的记录。(前提是模糊比较状态下)
"张"$姓名 是查找姓名中包含张的记录。
"张"=Substr(姓名,1,2) 查找姓张的记录。(与模糊比较还是精确比较状态无关)
姓名="张%"、姓名="%张%"、姓名="张?“
这三个写法是毫无实际意义的,除非真的姓名字段中有叫"张%"、"%张%、"张?"的。你这样写是三个字符串常量。
因为你不知道的%和_用法。
我不知道条件里还可以有“?” 。
在SQL语言的where <条件>子句中才可以出现%和_,举例:
查询“学籍”表中姓张的记录
select * from 学籍 where 姓名 like "张%"
(这里%的含义代表任意的多个字符)
select * from 学籍 where 姓名 like "张_"
(此命令中的_代表任意的一个字符,也就是说只能找出姓名叫“张某”,名字中两个字的记录。)
温馨提示:答案为网友推荐,仅供参考