求帮忙改错

party620 2013-07-26 11:25:56

if exists(select * from sys.objects where name='up_search')
drop proc up_search
go
create proc up_search
@type varchar(255),@firm varchar(255),@start int,@end int,@pro varchar(255),@city varchar(255)
as
select * from
(select *,ROW_NUMBER() over (order by ccode)as num from CraneInfo
where Ctype=case when @type<>'-1' then @type else Ctype end
and Company=case when @firm<>'-1' then @firm else Company end
and RegionId=case when @pro='-1' then RegionId else
(select SEC_REGION.REGION_ID from SEC_REGION where REGION_ID=case when @city<>'-1' then @city else REGION_ID end) end

) as test where num between @start and @end


在以上SQL语句中(select SEC_REGION.REGION_ID from SEC_REGION where REGION_ID=case when @city<>'-1' then @city else REGION_ID end)
查询出的结果有时是一条,有时是多条,这个地方我改如何改,请帮忙???
...全文
200 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
party620 2013-07-26
  • 打赏
  • 举报
回复
引用 5 楼 rockyljt 的回复:
将and RegionId=case when @pro='-1' then RegionId else (select SEC_REGION.REGION_ID from SEC_REGION where REGION_ID=case when @city<>'-1' then @city else REGION_ID end) end 改为 and exits(select 1 from ...) 或者改为in and RegionId IN (case when @pro='-1' then RegionId else (select SEC_REGION.REGION_ID from SEC_REGION where REGION_ID=case when @city<>'-1' then @city else REGION_ID end) END)
改为in还是一样的错误,
---涛声依旧--- 2013-07-26
  • 打赏
  • 举报
回复
将and RegionId=case when @pro='-1' then RegionId else (select SEC_REGION.REGION_ID from SEC_REGION where REGION_ID=case when @city<>'-1' then @city else REGION_ID end) end 改为 and exits(select 1 from ...) 或者改为in and RegionId IN (case when @pro='-1' then RegionId else (select SEC_REGION.REGION_ID from SEC_REGION where REGION_ID=case when @city<>'-1' then @city else REGION_ID end) END)
party620 2013-07-26
  • 打赏
  • 举报
回复
引用 2 楼 rockyljt 的回复:
否则,则改用exits语句了
哪个地方使用exits,能说详细点吗???
party620 2013-07-26
  • 打赏
  • 举报
回复
引用 1 楼 rockyljt 的回复:
如果是多条且随便取一条时,就加上top 1 and RegionId=case when @pro='-1' then RegionId else (select TOP 1 SEC_REGION.REGION_ID from SEC_REGION where REGION_ID=case when @city<>'-1' then @city else REGION_ID end) end
不能使用top1,我想要将查询出来的数据全部显示的
---涛声依旧--- 2013-07-26
  • 打赏
  • 举报
回复
否则,则改用exits语句了
---涛声依旧--- 2013-07-26
  • 打赏
  • 举报
回复
如果是多条且随便取一条时,就加上top 1 and RegionId=case when @pro='-1' then RegionId else (select TOP 1 SEC_REGION.REGION_ID from SEC_REGION where REGION_ID=case when @city<>'-1' then @city else REGION_ID end) end
茶暖人凉 2013-07-26
  • 打赏
  • 举报
回复
打酱油的,飘过
party620 2013-07-26
  • 打赏
  • 举报
回复
期待着解决,先谢谢各位
party620 2013-07-26
  • 打赏
  • 举报
回复
引用 11 楼 rockyljt 的回复:
按照你的写法,查询结果有两种,一种是所有记录,还有一种是所有条件都不为空的情况,我理解没错吧 但是我要求查询出来的结果不仅仅只两种情况,情况1:查询所有的;情况2:查询所有条件都不为空的记录; 情况3:第一个条件不为空,其余条件可能为空也可能不为空(这种情况下又包含好多情况);。。。。 可能下面还有好多不同的查询条件;(注释:为空表示全部)
---涛声依旧--- 2013-07-26
  • 打赏
  • 举报
回复
感觉楼主的存储过程没有条理 试着这样改

if exists(select * from sys.objects where name='up_search')
drop proc up_search
go
create proc up_search 
@type varchar(255),@firm varchar(255),@start int,@end int,@pro varchar(255),@city varchar(255)
AS

IF @type<>'-1' AND @firm<>'-1' AND @pro<>'-1' AND @city<>'-1'
	BEGIN
		WITH CTE AS 
		(select *,ROW_NUMBER() over (order by ccode)as num from CraneInfo
		 WHERE Ctype=@type AND Company=@firm 
		 AND RegionId IN (select REGION_ID from SEC_REGION where REGION_ID=@city)
			)
		SELECT * FROM CTE WHERE num between @start and  @end
	END
else
	begin
		SELECT 1 --此处楼主自己写了
	end
party620 2013-07-26
  • 打赏
  • 举报
回复
谁来帮帮我啊啊
party620 2013-07-26
  • 打赏
  • 举报
回复
需求就是按照要求把所要查询出来的结果都显示在页面上

-Tracy-McGrady- 2013-07-26
  • 打赏
  • 举报
回复
随便加个in 啊,max啊,top 1啊,min 啊,行不行?你要说出你的需求
party620 2013-07-26
  • 打赏
  • 举报
回复
各位帮帮忙,实在不会啊,
2016高考英语里决定你上130还是140的长难句(1).docx 2017高考英语里决定你上130还是140的长难句.docx 2018届高考英语各题型策略指导tips考前必读完整版.docx 2018届高考英语应考必看攻略(1).docx 2018高考英语写作话题高分单词短语 2.docx 2018高考英语写作话题高分单词短语.docx [倾听一线]让精读走心,助能力飙升.docx 《【重磅】15分钟看完这七个答题技巧,让你临场发挥超常,分数再涨20分》.doc 《历年高考改错题汇总,考前必看必练》.doc 《英语俚语、习语大全》.doc 《高考常考熟词生义大汇总,这里全了》.doc 【 新方略系列二】——高考备考我们不一样.doc 【倾听一线】好材料要用透用精—— 吴华卉老师使用《高中英语阅读6+1》案例分享.doc 【声临其境】让“金句”扎根,让表达生发.docx 一词多义&熟词生义微信.docx 中学阶段语法考点全貌 杨淑欣 郭玮伦.doc 中式英语大扫除.doc 为什么你的学习计划总是完不成?只是因为懒吗?.doc 书面表达想得高分?请领走这篇干货.docx 今年暑假,孩子到底歇不歇.docx 值得收藏!2018年暑假作业经典案例.docx 写作必备99句中国谚语.docx 十大应用文常用句型和写作模板.docx 十大魔鬼动词.docx 历年高考短文改错题汇总.docx 坚定词汇教学信念,为教师赋能——终稿.docx 备考干货-中学阶段语法考点全貌.doc 如何使用维词书.docx 平均分50分怎么办?做减法啊!—— 湖北阳新英才高中明祥献老师《新方略》使用心得.docx 平时注意这一点,英语写作不用愁.docx 必须熟记的高考听力场景词汇.docx 必须要掌握的1920个固定搭配.docx 我不懂英语,现在却能监督孩子学习(1).docx 掌握这35个英语俚语,让你的英语更上一层楼 (原创).docx 新高考真的来了!5大变化和20种选课模式,一定要替孩子了解清楚!(别留遗憾)(1).docx 最新高考应用文汇总.docx 有关世界杯那些英语你都GET到了吗.doc 注意了 高考后还需要做的八件事情.docx 牛!墙都不服就服你!暑假作业总动员.docx 盘点100句书面表达经典例句.docx 看看别人家的老师怎么备战高考.docx 真希望,不是为了考试而教你们英语.docx 第一讲 三年规划背景.docx 维克多英语——高考备考词块汇总(一)词块.doc 维克多英语——高考备考词块汇总(七)F和G字母.doc 维克多英语——高考备考词块汇总(三)A字母(answer - awkward).doc 维克多英语——高考备考词块汇总(九)——M, N, O字母.docx 维克多英语——高考备考词块汇总(二)A字母(achieve - another).doc 维克多英语——高考备考词块汇总(五)D字母.docx 维克多英语——高考备考词块汇总(八)字母H到L.doc 维克多英语——高考备考词块汇总(六)E字母.doc 维克多英语——高考备考词块汇总(十一)Q & R字母.doc 维克多英语——高考备考词块汇总(十三)T字母.doc 维克多英语——高考备考词块汇总(十二)S字母.doc 维克多英语——高考备考词块汇总(十四)字母U-Z词块--.docx 维克多英语——高考备考词块汇总(十)P字母.docx 维克多英语——高考备考词块汇总(四)C字母.doc 考前词块集锦.doc 耳目一新的高三二轮复习——高三备考最强战队再度来袭.doc 英语俚语、习语大全.docx 英语原创思维如何培养.docx 英语学习8个不良习惯第二篇.doc 英语怎样拿高分.doc 英语最重要的固定搭配.docx 话题写作高分句 1.docx 话题写作高分句 2.docx 话题写作高分句(一).docx 语法填空必备词汇(按字母排序).doc 语法填空满分技巧解读+8篇真题演练.docx 辨析套路竟然这么深,太涨知识了!.doc 近200组反义词玩转初高中衔接.doc 这45个前缀让你词汇量增加三倍.docx 这6张漫画的5多1少,让你变得更优秀(非原创).docx 重要!高中英语阅读七选五解题方法+技巧,教你秒杀正确答案!.docx 阅读完形中最熟悉的“陌生词”.doc 阅读完形中最熟悉的”陌生词“.docx 高三复习化繁为简,“多多帮忙”.doc 高三复习案例分享,张达老师1.docx 高中英语课本,原来可以这样来规划.docx 高分写作必备 100句高考范文金句.docx 高分写作必备 50句名人名言.docx 高考倒计时,英语成绩怎么逆袭?.docx 高考冲刺 9张图搞定海量单词,助您踢好“临门一脚”.ppt 高考冲刺必备高频词.do

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧