| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3267 人关注过本帖
标题:sql 语句太长,可用分号;来分段,哪在输入分号(;)前要不要先空一格再输入 ...
只看楼主 加入收藏
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
结帖率:79.38%
收藏
已结贴  问题点数:20 回复次数:15 
sql 语句太长,可用分号;来分段,哪在输入分号(;)前要不要先空一格再输入分号还是不要空格直接输入分号?
第一种先空格再输入分号;
SELECT , TAlias2.order_date, TAlias2.shipped_on ;
   FROM customer TAlias1, orders TAlias2 ;
   WHERE TAlias1.cust_id = TAlias2.cust_id ;
   AND TAlias2.order_date < {^1994-02-16}


第二种没有空格直接输入分号;
SELECT , TAlias2.order_date, TAlias2.shipped_on;
   FROM customer TAlias1, orders TAlias2;
   WHERE TAlias1.cust_id = TAlias2.cust_id;
   AND TAlias2.order_date < {^1994-02-16}
我试了二种情况,代码能运行,哪一种规范?
2014-09-21 15:49
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:3 
输入分号后空一格
2014-09-21 16:21
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
收藏
得分:0 

但在[新手必看 SELECT--SQL语法 别乱提问了,先看看]一文中例子:
, 如下例所示:

SELECT , orders.order_id, orders.emp_id ;
FROM customer, orders ;
WHERE customer.cust_id = orders.cust_id ;
UNION ;
SELECT , 0, 0 ;
FROM customer ;
WHERE customer.cust_id NOT IN ;
(SELECT orders.cust_id FROM orders)
注意 确信在每一个分号前包括一个空格。否则, Visual FoxPro 产生一个错误。

[新手必看 SELECT--SQL语法 别乱提问了,先看看]:https://bbs.bccn.net/thread-82256-1-1.html
2014-09-21 16:33
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
答错了 是空一格输入分号才对
2014-09-21 16:57
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:3 
视代码格式而定

坚守VFP最后的阵地
2014-09-21 17:11
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:3 
VFP语句中分隔符常用有" "(空格)、","和";"。
其中";"为一语句分行书写的分隔符,他不只是起"换行"作用,还要符合分隔符前后语句完整性,";"前后有无空格不重要。
如:
? 123+456
不能写成:
? 123+4;
  56
可写成:
? 123;
  +456
2014-09-21 17:32
qingfameng
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:35
帖 子:964
专家分:3019
注 册:2010-2-6
收藏
得分:3 
视代码格式而定, ,前后有无空格不重要!
2014-09-21 20:14
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:3 
明白解释器或编译器是怎么处理这种换行的就知道答案。

授人以渔,不授人以鱼。
2014-09-21 20:38
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
收藏
得分:3 
以下是引用sylknb在2014-9-21 16:33:50的发言:


但在[新手必看 SELECT--SQL语法 别乱提问了,先看看]一文中例子:
, 如下例所示:

SELECT , orders.order_id, orders.emp_id ;
FROM customer, orders ;
WHERE customer.cust_id = orders.cust_id ;
UNION ;
SELECT , 0, 0 ;
FROM customer ;
WHERE customer.cust_id NOT IN ;
(SELECT orders.cust_id FROM orders)
注意 确信在每一个分号前包括一个空格。否则, Visual FoxPro 产生一个错误。

[新手必看 SELECT--SQL语法 别乱提问了,先看看]:https://bbs.bccn.net/thread-82256-1-1.html
那是因为他这个例子的书写不规范,每行的开头都顶格写的。所以,分号前不加空格的话,相当于每行的第一个字母会贴住上一行的最后一个字母,造成VFP不能识别,从而出错。而你在一楼给的例子书写规范,每行前面都用了缩进的方法让命令中的各子句关系清晰明了。同时,每行前的空格也起到了分隔的作用,因此,对于你的代码来说,分号前加不加空格是一样的。顺便说一句,我也是这样写代码的,所以从不理会分号前的空格。
2014-09-21 20:56
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
收藏
得分:0 
以下是引用TonyDeng在2014-9-21 20:38:57的发言:

明白解释器或编译器是怎么处理这种换行的就知道答案。
能具体说一下好吗?深奥了。
2014-09-22 09:12
快速回复:sql 语句太长,可用分号;来分段,哪在输入分号(;)前要不要先空一格 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.046954 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved