| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2659 人关注过本帖
标题:如果SQL没有查询到,会是空表吗?
只看楼主 加入收藏
wedsic
Rank: 1
等 级:新手上路
帖 子:162
专家分:0
注 册:2017-7-17
结帖率:66.67%
收藏
已结贴  问题点数:10 回复次数:5 
如果SQL没有查询到,会是空表吗?
SELECT * FROM tmpdbf WHERE xh=tmpdbf.学号 AND xm=tmpdbf.姓名 INTO cursor tmpxx

1.xh和xm是空的情况下,怎么返回的是tmpdbf表的所有记录
2.xh和xm是空的情况下,怎么才能返回一个空表呢
搜索更多相关主题的帖子: SQL 查询 INTO 返回 记录 
2017-08-26 10:58
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3146
专家分:8408
注 册:2015-3-25
收藏
得分:5 
以下是引用wedsic在2017-8-26 10:58:06的发言:

SELECT * FROM tmpdbf WHERE xh=tmpdbf.学号 AND xm=tmpdbf.姓名 INTO cursor tmpxx  
 
1.xh和xm是空的情况下,怎么返回的是tmpdbf表的所有记录
2.xh和xm是空的情况下,怎么才能返回一个空表呢
* 如果都是空,返回所以记录.
SELECT * FROM tmpdbf INTO cursor tmpxx
* 如果都是空,返回空表
SELECT * FROM tmpdbf where .f. INTO cursor tmpxx

* 这个和姓名,学号,没什么关联
* 如果要一定判断 学号和姓名 为空
* 返回所有 学号和姓名 为空的记录
SELECT * FROM tmpdbf WHERE empty(tmpdbf.学号) AND empty(tmpdbf.姓名) INTO cursor tmpxx  
* 返回所有 学号和姓名 不为空的记录
SELECT * FROM tmpdbf WHERE !empty(tmpdbf.学号) AND !empty(tmpdbf.姓名) INTO cursor tmpxx  

2017-08-26 11:12
wedsic
Rank: 1
等 级:新手上路
帖 子:162
专家分:0
注 册:2017-7-17
收藏
得分:0 
回复 2楼 mywisdom88
xh、xm是手动输入的
根据手动输入的内容去判断,然后放在临时表里
2017-08-26 12:22
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3146
专家分:8408
注 册:2015-3-25
收藏
得分:0 
以下是引用wedsic在2017-8-26 12:22:21的发言:

xh、xm是手动输入的
根据手动输入的内容去判断,然后放在临时表里
先判断,然后分支处理
if empty(xh) and empty(xm)
   SELECT * FROM tmpdbf INTO cursor tmpxx &&学号和姓名都是空,查所有记录
else
  do case
     case empty(xh)     
          SELECT * FROM tmpdbf WHERE xm=tmpdbf.姓名 INTO cursor tmpxx &&学号是空,那姓名就不空,按姓名做条件
     case empty(xm)
          SELECT * FROM tmpdbf WHERE xh=tmpdbf.学号 INTO cursor tmpxx  &&姓名是空,那学号就不空,按学号做条件
     otherwise
          SELECT * FROM tmpdbf WHERE xh=tmpdbf.学号 and xm=tmpdbf.姓名 INTO cursor tmpxx &&学号和姓名都不空
  endcase
endif
这样,你怎么查,都可以,如果你输入的条件不符合,就会查出空表的
2017-08-26 13:41
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3146
专家分:8408
注 册:2015-3-25
收藏
得分:0 
另外,如果你学号和姓名字段都是字符的,加个allt()会有意想不到的效果,如
allt(xm)=allt(tmpdbf.姓名) and  allt(xh)=allt(tmpdbf.学号)
2017-08-26 13:45
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
收藏
得分:5 
把条件子句中的一个等号换成两个等号就行了。
2017-08-26 19:46
快速回复:如果SQL没有查询到,会是空表吗?
数据加载中...
 
   



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

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