CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  疑难问题

再帮我转一存储过程,有点复杂

楼主nbjed(jed)2002-12-14 17:52:46 在 MS-SQL Server / 疑难问题 提问

sql="SELECT   TOP   4   classId,style_no,id,smallimg,isnew,newtime,Img_Name   FROM   products   where   seelevel='c'   "  
  if   Request.cookies("cookies_member")=true   then  
  sql=sql&"   or   seelevel='b'   "  
  if   Request.cookies("cookies_allow")=1   then  
  sql=sql&"   or   seelevel='a'   "  
  end   if  
  end   if  
  select   case   products_type  
  case   "Random"  
  if   showedid<>""   then  
  sql=sql&"   and   id   not   in   "&   showedid   &"   ORDER   BY   NEWID()"  
  else  
  sql=sql&"   ORDER   BY   NEWID()"  
  end   if  
  case   "recommend"  
  if   showedid<>""   then  
  sql=sql&"   and   tj='yes'   and   id   not   in   "&   showedid   &"   ORDER   BY   NEWID()"  
  else  
  sql=sql&"   and   tj='yes'   ORDER   BY   NEWID()"  
  end   if  
  case   "new"  
  if   showedid<>""   then  
  sql=sql&"   and   DateDiff(d,   isnew,   getdate())<newtime   and   id   not   in   "&   showedid   &"   ORDER   BY   NEWID()"  
  else  
  sql=sql&"   and   DateDiff(d,   isnew,   getdate())<newtime   ORDER   BY   NEWID()"  
  end   if  
  end   select 问题点数:20、回复次数:1Top

1 楼pengdali()回复于 2002-12-14 18:18:20 得分 20

create   procedure   aa  
  @cookies_member   bit,  
  @cookies_allow   smallint,  
  @products_type   varchar(100),  
  @showedid   varchar(100)  
  as  
  declare   @sql   varchar(3000)  
  set   @sql='SELECT   TOP   4   assId,style_no,id,smallimg,isnew,newtime,Img_Name   FROM   products   where   seelevel=''c''   '  
   
  if   @cookies_member=1  
      begin  
          set   @sql=@sql+'   or   seelevel=''b'''  
          if   @cookies_allow=1   then  
              set   @sql=@sql+'   or   seelevel=''a'''  
      end  
  if   @products_type='Random'  
      begin  
          if   @showedid<>''  
              set   @sql=@sql+'   and   id   <>'''+@showedid+'''   order   by   newid()'  
          else  
              set   @sql=@sql+'ORDER   BY   NEWID()'  
      end  
  else   if   @products_type='recommend'  
      begin  
          if   @showedid<>''  
              set     @sql=@sql+'   and   tj=''yes''   and   id   <>   '''+@showedid+'''   ORDER   BY   NEWID()'  
          else  
              ....................................你自己改吧!  
      end  
  Top

相关问题

  • 求一个SQL存储过程的写法(有点复杂)!
  • 请高手帮忙写个存储过程!比较复杂
  • 一个加了判断的复杂存储过程,各位帮我看看啊~~~
  • 存储过程中动态执行sql出错,不复杂,请大家帮看看
  • 求助这个存储过程有些复杂,写到一半写不下去了,谁来帮我?
  • 帮帮忙写个Oracle存储过程!
  • 帮我一下,关于存储过程
  • 存储过程出错,帮忙看看。
  • 帮忙看看存储过程问题
  • 帮忙看个存储过程

关键词

  • cookies
  • sql
  • showedid
  • thensql
  • seelevel
  • tj
  • order by newid
  • yes
  • products
  • set

得分解答快速导航

  • 帖主:nbjed
  • pengdali

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo