CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

求一查询

楼主spy7(spy7)2004-12-02 23:10:11 在 MS-SQL Server / 基础类 提问

字段1       字段2     字段3     字段4  
      1               0             1         null  
      1               1             2           大  
      1               2             3           null  
      1               3             4           小  
   
      2               0             1         不大  
      2               0             2           ll  
      2               0             3           klkl  
      2               1             1           不小  
      2               2             2           jkjk  
      2               3             1           中  
     
  要求得到  
        1             0             1           不大  
        1             1             2           大  
        1             2             3           不小  
        1             3             4           小  
   
  字段1=1时,字段4中有可能无数据  
  字段1=2时,字段4中总有数据  
   
  要查询得字段1=1的数据。  
  查询时:  
      字段1=1时的字段4数据优先,为空的话取字段1=2时的字段4中数据  
  问题点数:20、回复次数:5Top

1 楼guanshiyu123(就欺负你..宝)回复于 2004-12-02 23:58:50 得分 1

用case  
   
  select   a.字段1,a.字段2,a.字段3,  
  case   isnull(a.字段4,'')   when   ''   then   (select   字段4   from   tttt   b   where   b.字段1=2   and   b.字段2=a.字段2   and   b.字段3=a.字段3)   else   a.字段4   end  
    from   tttt   a     order   by   字段1,字段2,字段3  
   
  楼主的要求还没有明确,如果在字段1=2的里面没有符合条件的,将取谁请楼主在明确一下,Top

2 楼guanshiyu123(就欺负你..宝)回复于 2004-12-03 00:00:13 得分 0

字段1=1的数据  
   
  select   a.字段1,a.字段2,a.字段3,  
  case   isnull(a.字段4,'')   when   ''   then   (select   字段4   from   tttt   b   where   b.字段1=2   and   b.字段2=a.字段2   and   b.字段3=a.字段3)   else   a.字段4   end  
    from   tttt   a   where   字段1=1   order   by   字段1,字段2,字段3Top

3 楼guanshiyu123(就欺负你..宝)回复于 2004-12-03 00:01:24 得分 0

例如  
  1             2             3           不小  
  这条,这是根据什么原则取"不小"这个值的Top

4 楼spy7(spy7)回复于 2004-12-03 08:36:10 得分 0

我再说明白点  
  字段1=1表示一级菜单,字段1=2表示二级菜单。  
  字段2表示二级菜单分类,  
  字段3表示菜单顺序  
   
  如果一级菜单(也就是字段1=1)的某一项(比如字段2=0)无默认菜单(也就是字段4=null),那么就取相应二级菜单(字段2=0)中顺序号(字段3)最小的(也就是字段3=1)  
   
  字段1       字段2     字段3     字段4  
      1               0             1         null  
      1               1             2           大  
      1               2             3           null  
      1               3             4           小  
   
      2               0             1         不大  
      2               0             2           ll  
      2               0             3           klkl  
      2               1             1           不小  
      2               2             2           jkjk  
      2               3             1           中  
     
  要求得到  
        1             0             1           不大  
        1             1             2           大  
        1             2             3           不小  
        1             3             4           小  
   
  字段1=1时,字段4中有可能无数据  
  字段1=2时,字段4中总有数据  
   
  要查询得字段1=1的数据。  
  查询时:  
      字段1=1时的字段4数据优先,为空的话取字段1=2时的字段4中数据  
   
  Top

5 楼nbyqz(拉拉)回复于 2005-01-22 19:22:59 得分 19

字段1=1的数据  
   
  select   a.字段1,a.字段2,a.字段3,  
  case   isnull(a.字段4,'')   when   ''   then   (select   字段4   from   tttt   b   where   b.字段1=2   and   b.字段2=a.字段2   and   b.字段3=a.字段3)   else   a.字段4   end  
    from   tttt   a   where   字段1=1   order   by   字段1,字段2,字段3  
  Top

相关问题

  • 求一查询
  • 求一查询
  • 求一查询
  • 一个查询
  • 一条查询sql
  • 一个sql查询?
  • 求一个查询
  • 求一个查询
  • 求一查询sql
  • 一个SQL查询

关键词

  • 字段
  • 查询
  • 数据
  • null
  • 数据字
  • 菜单
  • 二级
  • 表示
  • case isnull
  • from tttt

得分解答快速导航

  • 帖主:spy7
  • guanshiyu123
  • nbyqz

相关链接

  • SQL Server类图书

广告也精彩

反馈

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