关于VFP中的几条命令
我教VFP,但是有几条命令搞得我比较头晕,请高手们帮忙解答。1.显示姓名中含“张”的记录。命令:Displayallfor"张"$姓名2.显示姓名中姓为“张”的记录。命令...
我教VFP,但是有几条命令搞得我比较头晕,请高手们帮忙解答。
1.显示姓名中含“张”的记录。
命令:Display all for "张"$姓名
2.显示姓名中姓为“张”的记录。
命令:Display all for 姓名="张"
3.将姓为“张”的记录复制到NEW.dbf中。
命令:Copy all for "张"=Substr(姓名,1,2)
请问:(1)以上三条命令是否正确?
(2)姓名="张"、姓名="张%"、姓名="%张%"、姓名="张?"、"张"$姓名、"张"=Substr(姓名,1,2)各在什么时候用?
(3)同样是姓张的记录,为何在复制和显示时,for语句的表述方式不同?
谢谢! 展开
1.显示姓名中含“张”的记录。
命令:Display all for "张"$姓名
2.显示姓名中姓为“张”的记录。
命令:Display all for 姓名="张"
3.将姓为“张”的记录复制到NEW.dbf中。
命令:Copy all for "张"=Substr(姓名,1,2)
请问:(1)以上三条命令是否正确?
(2)姓名="张"、姓名="张%"、姓名="%张%"、姓名="张?"、"张"$姓名、"张"=Substr(姓名,1,2)各在什么时候用?
(3)同样是姓张的记录,为何在复制和显示时,for语句的表述方式不同?
谢谢! 展开
2个回答
展开全部
我也才开始教这门课程,愿意与你共同学习。
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 "张_"
(此命令中的_代表任意的一个字符,也就是说只能找出姓名叫“张某”,名字中两个字的记录。)
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 "张_"
(此命令中的_代表任意的一个字符,也就是说只能找出姓名叫“张某”,名字中两个字的记录。)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询