SQL 如何把sql 条件有多个值查询询成多条数据

20:56 提问
急!请教这个sql语句怎么写:两个条件查询,其中一个满足,另一个条件就不要加了
条件2始终存在,条件1不一定始终有。条件1、条件2的数据可能同时存在,但是
当有条件1的数据存在的时候,显示条件1的数据;
如果没有,则显示条件2的数据的数据。
按赞数排序
select * from table where
(条件1 and not exist (select * from table where 条件2))
(条件2 and not exist (select * from table where 条件1))
查询条件是在查询的时候,查看该条记录是否符合条件。
而你提的问题是,要求查询逻辑的控制,是否使用条件2取决于条件1的查询结果。
所以还是要写成两条语句,在条件1没有数据的时候,再去第二次查询条件2。
其他相似问题
相关参考资料一行数据变成多行数据的SQL,该如何写?
[问题点数:54分,结帖人zhangxiaofeng198]
一行数据变成多行数据的SQL,该如何写?
[问题点数:54分,结帖人zhangxiaofeng198]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2008年11月 MS-SQL Server大版内专家分月排行榜第三2008年10月 MS-SQL Server大版内专家分月排行榜第三2006年7月 MS-SQL Server大版内专家分月排行榜第三
2010年7月 荣获微软MVP称号
2008年11月 MS-SQL Server大版内专家分月排行榜第一2008年10月 MS-SQL Server大版内专家分月排行榜第一
2005年 总版技术专家分年内排行榜第四
2006年11月 总版技术专家分月排行榜第一2006年3月 总版技术专家分月排行榜第一2006年2月 总版技术专家分月排行榜第一2006年1月 总版技术专家分月排行榜第一2005年12月 总版技术专家分月排行榜第一
2009年3月 Oracle大版内专家分月排行榜第二2009年2月 Oracle大版内专家分月排行榜第二
2009年6月 Oracle大版内专家分月排行榜第三2009年5月 专题开发/技术/项目大版内专家分月排行榜第三2009年4月 Oracle大版内专家分月排行榜第三
2009年3月 Oracle大版内专家分月排行榜第二2009年2月 Oracle大版内专家分月排行榜第二
2009年6月 Oracle大版内专家分月排行榜第三2009年5月 专题开发/技术/项目大版内专家分月排行榜第三2009年4月 Oracle大版内专家分月排行榜第三
2008年 总版技术专家分年内排行榜第二
2010年 总版技术专家分年内排行榜第四2009年 总版技术专家分年内排行榜第五2007年 总版技术专家分年内排行榜第六
2008年 总版技术专家分年内排行榜第二
2010年 总版技术专家分年内排行榜第四2009年 总版技术专家分年内排行榜第五2007年 总版技术专家分年内排行榜第六
本帖子已过去太久远了,不再提供回复功能。您所在的位置: &
SQL Server表中数据按条件批量导出为多个Excel文件
SQL Server表中数据按条件批量导出为多个Excel文件
yongsheng0550
本文我们主要介绍了SQL Server数据表中的数据按条件批量导出为多个Excel文件的实现方法,希望能够对您有所收获!
SQL Server表中数据按条件批量导出为多个Excel文件是本文我们主要要介绍的内容,在一次SQL Server数据库的操作中,需要将某个有数十万行数据的表按类别导出为xls文件,每个类别一个xls。将数据表中的数据导出并保存为xls简单,用SSIS或者查询出来之后另存为都可以。但是,这个表中的分类有数百个,如果一个个用SSIS或者查询另存为的话,工作量巨大。前思后想,想到了用while循环查询,并用bcp导出的方法。
下面是相关代码:
--声明需要的变量&&& &declare&@sql&varchar(600),@TypeID&int&& &--确认第一个分类的ID&&& &select&@TypeID=min(TypeID)&from&t_TestTable&& &--当存在满足分类ID的记录时进行处理&&& &while&exists(select&1&from&t_TestTable&where&TypeID=@TypeID)&& &begin&& &--拼凑需要执行的语句&&& &set&@sql='bcp&&select&*&from&(select'+'''列名1'''+'&AS&列名1,'+'''列名2'''+'&AS&列名2,'+'''列名3'''+'&AS&列名3'--在xls文件中显示列名&&& &set&@sql=@sql+'&union&all&select&列名1,列名2,列名3&from&t_TestTable&where&TypeID='+cast(@TypeID&as&varchar(8))+')a&&queryout&&F:\datafile\TypeData'+cast(@TypeID&as&varchar(8))+'.xls&&-c&-q&-S&ServerName&&-U&sa&&-P&SAPASSWORD&&-d&DBName&'--查询满足条件的记录并保存到xls文件中&&& &--使用xp_cmdshell系统存储过程执行拼凑好的语句(需要使用高级选项开关预先开启cmdshell组件)&&& &exec&master..xp_cmdshell&@sql&& &--获得下一个分类的ID(分类ID是不连续的)&&& &select&@TypeID=isnull(min(TypeID),@TypeID+1)&from&t_TestTable&where&TypeID=@TypeID+1&& &end&&&
以上就是SQL Server表中数据按条件批量导出为多个Excel文件的实现方法,本文就介绍到这里了,希望本次的介绍能够对您有所收获!
【编辑推荐】
【责任编辑: TEL:(010)】
关于&&的更多文章
不管你有没有准备好,新版SQL Server来了!代号为Denali的下一个
数据库产品
数据库综合
数据库新闻
维基百科将切换到另外一款开源数据库MariaDB
Oracle数据库的查询优化,是DBA们需要考虑的问题。在
Oracle数据库的配置工作十分复杂,不光涉及到存储数据
Infobright是一个与MySQL集成的开源数据仓库(Data Wa
本书是在“思想方法学”这一软件工程尚未涉足过的领域中的实习之作。作者亲历国内软件工程的英雄时代、泡沫时代,从失败中醒觉而
51CTO旗下网站请教 怎么把dbgrideh里查询显示的多条记录修改后,做为新的数据保存到sql2000里
[问题点数:20分]
请教 怎么把dbgrideh里查询显示的多条记录修改后,做为新的数据保存到sql2000里
[问题点数:20分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2015年7月 MS-SQL Server大版内专家分月排行榜第三2015年6月 其他数据库开发大版内专家分月排行榜第三
2014年10月 Delphi大版内专家分月排行榜第二2014年9月 Delphi大版内专家分月排行榜第二
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。

我要回帖

更多关于 sql查询多个值 的文章

 

随机推荐