CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2EE / EJB / JMS

90分求一SQL语句,成功立刻结帖!

楼主xiaohuozhi()2005-04-04 00:23:24 在 Java / J2EE / EJB / JMS 提问

表有以下内容:  
  -----------------------------------  
          Id         |       name     |         Age       |  
  -----------------------------------  
    02_1           |       name1   |         age1     |  
  -----------------------------------  
    01_1           |       name1   |         age1     |  
  -----------------------------------  
  ...........共有N条  
  -----------------------------------  
    03_1           |       name1   |         age1     |  
  -----------------------------------  
   
  如何用一条Sql语句查出N条Id以01开头的,M条Id以02  
  开头的,L条Id以03开头的,而且N+M+L==20  
   
  一条能否写出,写出立刻结帖,只给一人! 问题点数:90、回复次数:22Top

1 楼simonxuluo(爱江山更爱美人)回复于 2005-04-04 01:22:26 得分 20

SELECT   *   FROM   tb_name   WHERE   Id   IN   (SELECT   TOP   N   Id   FROM   tb_name   WHERE   Id   LIKE   '01%')   OR   Id   IN   (SELECT   TOP   M   Id   FROM   tb_name   WHERE   Id   LIKE   '02%')   OR   Id   IN   (SELECT   TOP   20-M-N   Id   FROM   tb_name   WHERE   Id   LIKE   '03%')Top

2 楼simonxuluo(爱江山更爱美人)回复于 2005-04-04 01:24:57 得分 5

晕了,你那个N+M+L==20是什么意思啊,你要确定查询多少条应该定了吧Top

3 楼telenths(_非法操作_)回复于 2005-04-04 07:32:44 得分 5

首先   好像有点不太符合逻辑  
   
  约束条件还不够  
   
  N+M+L==20     那么   N   M   L   怎么分配?  
   
  这样的话有无数种组合Top

4 楼yeshucheng(叶澍成★七哥)回复于 2005-04-04 08:38:29 得分 0

条件没有完全写全吧Top

5 楼talenty(残越)回复于 2005-04-04 09:23:12 得分 0

楼主是要做彩票程序么^o^Top

6 楼qiuzhong1983(老丘)回复于 2005-04-04 09:36:04 得分 0

条件不明确,建议去SQL区问Top

7 楼ipv(宁静致远)回复于 2005-04-04 11:55:30 得分 10

SELECT   *   FROM   tb_name   WHERE   Id   IN   (SELECT   TOP   N   Id   FROM   tb_name   WHERE   Id   LIKE   '01%')   OR   Id   IN   (SELECT   TOP   M   Id   FROM   tb_name   WHERE   Id   LIKE   '02%')   OR   Id   IN   (SELECT   TOP   20-M-N   Id   FROM   tb_name   WHERE   Id   LIKE   '03%')   and   (M+N+L=20)  
  Top

8 楼xiaohuozhi()回复于 2005-04-04 19:10:19 得分 0

M   N   L随机数,和==20!Top

9 楼xiaohuozhi()回复于 2005-04-04 19:11:43 得分 0

忘了多个条件了,不好意思呀。  
  这个是要随机搜起来。就是说一共搜索出来20条记录,这20条记录是随机的,不是用Top的。  
   
  如果分不足可以再加!!!!Top

10 楼jianghuxing(回头看看原来我一无所有)回复于 2005-04-04 19:16:11 得分 10

SELECT   *   FROM   tb_name   WHERE   Id   IN   (SELECT   TOP   N   Id   FROM   tb_name   WHERE   Id   LIKE   '01%')   OR   Id   IN   (SELECT   TOP   M   Id   FROM   tb_name   WHERE   Id   LIKE   '02%')   OR   Id   IN   (SELECT   TOP   20-M-N   Id   FROM   tb_name   WHERE   Id   LIKE   '03%')   and   (M+N+L=20)Top

11 楼xiaohuozhi()回复于 2005-04-04 19:36:31 得分 0

SELECT   *   FROM   tb_name   WHERE   Id   IN   (SELECT   TOP   N   Id   FROM   tb_name   WHERE   Id   LIKE   '01%')   OR   Id   IN   (SELECT   TOP   M   Id   FROM   tb_name   WHERE   Id   LIKE   '02%')   OR   Id   IN   (SELECT   TOP   20-M-N   Id   FROM   tb_name   WHERE   Id   LIKE   '03%')   and   (M+N+L=20)  
   
  这一条不用执行估计应该不会错!  
  我是想他在数据库中随机查询!不用要Top   N或Top   M这样的,有没有可能?Top

12 楼runnerrunning(千寻失业ing&那是我所不能了解的事)回复于 2005-04-04 22:12:19 得分 0

having关键字应该可以Top

13 楼bestdelphier(菜鸟升级中......)回复于 2005-04-05 01:09:06 得分 10

实在不行就不要一个sql语句写嘛,干嘛非要钻牛角尖。Top

14 楼joincsdn(云)回复于 2005-04-05 08:15:15 得分 0

不是太明白楼主的随机是什么意思??既然是随机为什么不加一个列用随机数和ID作条件查询呢??Top

15 楼OnlyFor_love(『勾勾手指头 一辈子不分手』)回复于 2005-04-05 09:17:50 得分 0

顶一个Top

16 楼xiaohuozhi()回复于 2005-04-05 11:21:29 得分 0

做考试系统,随机查询数据库中的20条记录。  
  因为试题有三种类型。试题又比较多,所以想随机搜索,确认  
  三种试题都有抽到!Top

17 楼kingofall(超级菜鸟)回复于 2005-04-05 14:23:39 得分 0

建议在sqlserver版问,那里人写sql比较牛Top

18 楼martin628(笨就一个字)回复于 2005-04-06 15:00:36 得分 10

select   top   20   *   from   tab   where   Id     like   '01%'   or     Id     like   '02%'or   Id     like   '03%'Top

19 楼dakuntk(2008wo26)回复于 2005-04-06 15:28:47 得分 0

markTop

20 楼alley_zhan(晓柯)回复于 2005-04-07 13:44:43 得分 10

SELECT   *   FROM   tb_name   t  
  where   (t.id   like   '01%'  
  or   t.id   like   '02%'  
  or   t.id   like   '03%')  
  and   rownum<=20  
   
  用oracle的rownum可以很容易实现,sqlserver能不能用没试过Top

21 楼wumingwangzi(将java进行到底)回复于 2005-04-07 13:59:10 得分 5

我觉得这个只用一条sql来实现比较困难,  
  可以先用相应的语言写一个小算法,  
  生成随机数,  
  然后再用一条语句读出需要结果来查询  
  Top

22 楼alley_zhan(晓柯)回复于 2005-04-07 14:00:41 得分 5

不好意思,没有看清楚三种情况必须要有  
  这样的话还使用随机数指定三个的id范围,再查比较保险。  
  否则就算不指定top什么的,也不能保证每次取出来的都不一样Top

相关问题

  • 立即揭帖!!!求一SQL语句
  • 求一sql语句(oracle)马上揭帖
  • 求SQL语句
  • sql语句。
  • sql语句?
  • sql 语句?
  • 求SQL语句
  • ***求SQL语句***
  • sql语句??
  • sql语句

关键词

  • 语句
  • 查询
  • 试题
  • top
  • sql
  • 开头
  • from tb
  • select top
  • 记录
  • age

得分解答快速导航

  • 帖主:xiaohuozhi
  • simonxuluo
  • simonxuluo
  • telenths
  • ipv
  • jianghuxing
  • bestdelphier
  • martin628
  • alley_zhan
  • wumingwangzi
  • alley_zhan

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

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