SQL SERVER 2008 求助

本贴最后更新于 3208 天前,其中的信息可能已经水流花落

41e1340b59344daf868886341073b5a3-QQ20161115141519.png
怎么样才能在每次查询的时候在 sjid 列每一个重复的内容中随机选一列的内容显示出来?
自己已经试了一上午了,新手,不会啊,求大神帮忙了~

打赏 1 积分后可见
1 积分 • 2 打赏
  • SQL
    129 引用 • 396 回帖 • 3 关注
  • 求助
    49 引用 • 401 回帖 • 1 关注
  • sjid
    1 引用 • 23 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • ZephyrJung 2 1 赞同

    话说你这个问题能不能放到程序里面做,反正你们要随机读取的话,每次都要查询,不如就查询出所有的来,每次请求返回随机一个好了

    1 回复
  • luqiao19950804
    作者

    怎么请求。。

    1 回复
  • ZephyrJung

    我是说,你查询出全部,放到 Java 的 List 里,然后再根据 sjid 取随机一条
    就是如果数据量很大估计有问题……

    1 回复
  • luqiao19950804
    作者

    products 这个表有七十多 W 的数据量

  • ephen

    你这个逻辑有点问题吧?
    sjid 不重复,又不是查重复数量。。那其他列又不是重复的,怎么会存在剔重……

    需求就感觉不太明确。

    2 回复
  • ZephyrJung

    他的意思是根据 sjid 分组,对每组取出随机一条来

    2 回复
  • luqiao19950804
    作者

    select * 查询了所有的内容,每一条内容本身是不重复的,但是 sjid 这一列相当于一个类,有很多内容隶属于一个类,要求是把每个类能显示出来,但是类里面的内容只随机显示一条出来。。

  • luqiao19950804
    作者

    对,就是这意思。。

  • ephen 1 1 赞同

    你是要每个 sjid 只随机选出一条数据么?
    这样的话,可以用存储过程啊。

    先 select distinct sjid from table ,把值存到一个变量里面再 Loop 循环取出来。

    select TOP 1 * FROM table where sjid = :sjid order by newid()

    这样行不行?

    PS:没接触过 SqlServer,只是个思路……newid 也是刚查到的,不晓得能不能用……

    1 回复
  • ephen

    他这样的数据也没法 group by 吧……

    1 回复
  • luqiao19950804
    作者

    那个冒号做什么用的?

    1 回复
  • ZephyrJung

    其实用存储过程看起来就没有问题了
    我们都是把前提设定为:sql 解决

    1 回复
  • ephen

    前面取出来的变量。
    不晓得 sqlserver 啥语法,我记得 oracle 好像是这样的。

    1 回复
  • luqiao19950804
    作者

    母鸡啊,我也是才接触这玩意不久。。

    1 回复
  • ephen

    楼主是要实现功能撒,没说一定要用 sql 吧?

    1 回复
  • ephen

    所以正好可以去学习下……

  • luqiao19950804
    作者

    是用 sql server2008 的语句

    1 回复
  • ephen 1 1 赞同

    必须用 sql 语句的话,看看别人是不是有什么高明意见~
    我不是做技术的,只是随便插两句嘴。大家继续……O(∩_∩)O

    1 回复
  • luqiao19950804
    作者

    还是谢谢啦~

  • mainlove 1 赞同

    有现成的帖子讨论过 但是我觉得这样写效率不会太好 ,http://bbs.csdn.net/topics/390439875/
    还是按照 ephen 说的 一个一个查吧

  • luqiao19950804
    作者

    好了,自己已经搞定,就算数据量大也没有问题,下面是代码,还是谢谢大家了~
    select * from (
    select *,row=row_number()over(partition by column oeder by newid())
    from table/后面可以跟具体的查询条件/)t
    where row=1

    1 回复
  • luqiao19950804
    作者

    第二个 select 后面也有个 * 居然给我整不在了。。。

  • ZephyrJung 1 赞同 via macOS

    不错哦,学习了
    就是我们不用 sql server
    所以个人都是避免使用比较个性化的写法

请输入回帖内容 ...

推荐标签 标签

  • JSON

    JSON (JavaScript Object Notation)是一种轻量级的数据交换格式。易于人类阅读和编写。同时也易于机器解析和生成。

    53 引用 • 190 回帖
  • Thymeleaf

    Thymeleaf 是一款用于渲染 XML/XHTML/HTML5 内容的模板引擎。类似 Velocity、 FreeMarker 等,它也可以轻易的与 Spring 等 Web 框架进行集成作为 Web 应用的模板引擎。与其它模板引擎相比,Thymeleaf 最大的特点是能够直接在浏览器中打开并正确显示模板页面,而不需要启动整个 Web 应用。

    11 引用 • 19 回帖 • 398 关注
  • Android

    Android 是一种以 Linux 为基础的开放源码操作系统,主要使用于便携设备。2005 年由 Google 收购注资,并拉拢多家制造商组成开放手机联盟开发改良,逐渐扩展到到平板电脑及其他领域上。

    337 引用 • 324 回帖 • 2 关注
  • Anytype
    3 引用 • 31 回帖 • 40 关注
  • Chrome

    Chrome 又称 Google 浏览器,是一个由谷歌公司开发的网页浏览器。该浏览器是基于其他开源软件所编写,包括 WebKit,目标是提升稳定性、速度和安全性,并创造出简单且有效率的使用者界面。

    63 引用 • 289 回帖
  • VirtualBox

    VirtualBox 是一款开源虚拟机软件,最早由德国 Innotek 公司开发,由 Sun Microsystems 公司出品的软件,使用 Qt 编写,在 Sun 被 Oracle 收购后正式更名成 Oracle VM VirtualBox。

    10 引用 • 2 回帖 • 12 关注
  • 安装

    你若安好,便是晴天。

    131 引用 • 1184 回帖
  • Scala

    Scala 是一门多范式的编程语言,集成面向对象编程和函数式编程的各种特性。

    13 引用 • 11 回帖 • 166 关注
  • 代码片段

    代码片段分为 CSS 与 JS 两种代码,添加在 [设置 - 外观 - 代码片段] 中,这些代码会在思源笔记加载时自动执行,用于改善笔记的样式或功能。

    用户在该标签下分享代码片段时需在帖子标题前添加 [css] [js] 用于区分代码片段类型。

    231 引用 • 1671 回帖
  • Mac

    Mac 是苹果公司自 1984 年起以“Macintosh”开始开发的个人消费型计算机,如:iMac、Mac mini、Macbook Air、Macbook Pro、Macbook、Mac Pro 等计算机。

    167 引用 • 597 回帖
  • RabbitMQ

    RabbitMQ 是一个开源的 AMQP 实现,服务器端用 Erlang 语言编写,支持多种语言客户端,如:Python、Ruby、.NET、Java、C、PHP、ActionScript 等。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

    49 引用 • 60 回帖 • 348 关注
  • 数据库

    据说 99% 的性能瓶颈都在数据库。

    346 引用 • 761 回帖
  • 程序员

    程序员是从事程序开发、程序维护的专业人员。

    593 引用 • 3533 回帖
  • wolai

    我来 wolai:不仅仅是未来的云端笔记!

    2 引用 • 14 回帖 • 1 关注
  • golang

    Go 语言是 Google 推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发 Go,是因为过去 10 多年间软件开发的难度令人沮丧。Go 是谷歌 2009 发布的第二款编程语言。

    500 引用 • 1396 回帖 • 253 关注
  • MySQL

    MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是最流行的关系型数据库管理系统之一。

    694 引用 • 537 回帖
  • WordPress

    WordPress 是一个使用 PHP 语言开发的博客平台,用户可以在支持 PHP 和 MySQL 数据库的服务器上架设自己的博客。也可以把 WordPress 当作一个内容管理系统(CMS)来使用。WordPress 是一个免费的开源项目,在 GNU 通用公共许可证(GPLv2)下授权发布。

    46 引用 • 114 回帖 • 148 关注
  • LeetCode

    LeetCode(力扣)是一个全球极客挚爱的高质量技术成长平台,想要学习和提升专业能力从这里开始,充足技术干货等你来啃,轻松拿下 Dream Offer!

    209 引用 • 72 回帖 • 1 关注
  • 七牛云

    七牛云是国内领先的企业级公有云服务商,致力于打造以数据为核心的场景化 PaaS 服务。围绕富媒体场景,七牛先后推出了对象存储,融合 CDN 加速,数据通用处理,内容反垃圾服务,以及直播云服务等。

    29 引用 • 230 回帖 • 124 关注
  • Love2D

    Love2D 是一个开源的, 跨平台的 2D 游戏引擎。使用纯 Lua 脚本来进行游戏开发。目前支持的平台有 Windows, Mac OS X, Linux, Android 和 iOS。

    14 引用 • 53 回帖 • 561 关注
  • 宕机

    宕机,多指一些网站、游戏、网络应用等服务器一种区别于正常运行的状态,也叫“Down 机”、“当机”或“死机”。宕机状态不仅仅是指服务器“挂掉了”、“死机了”状态,也包括服务器假死、停用、关闭等一些原因而导致出现的不能够正常运行的状态。

    13 引用 • 82 回帖 • 77 关注
  • Kotlin

    Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言,由 JetBrains 设计开发并开源。Kotlin 可以编译成 Java 字节码,也可以编译成 JavaScript,方便在没有 JVM 的设备上运行。在 Google I/O 2017 中,Google 宣布 Kotlin 成为 Android 官方开发语言。

    19 引用 • 33 回帖 • 92 关注
  • Telegram

    Telegram 是一个非盈利性、基于云端的即时消息服务。它提供了支持各大操作系统平台的开源的客户端,也提供了很多强大的 APIs 给开发者创建自己的客户端和机器人。

    5 引用 • 35 回帖
  • CodeMirror
    2 引用 • 17 回帖 • 177 关注
  • 服务

    提供一个服务绝不仅仅是简单的把硬件和软件累加在一起,它包括了服务的可靠性、服务的标准化、以及对服务的监控、维护、技术支持等。

    41 引用 • 24 回帖 • 1 关注
  • Hprose

    Hprose 是一款先进的轻量级、跨语言、跨平台、无侵入式、高性能动态远程对象调用引擎库。它不仅简单易用,而且功能强大。你无需专门学习,只需看上几眼,就能用它轻松构建分布式应用系统。

    9 引用 • 17 回帖 • 640 关注
  • 负能量

    上帝为你关上了一扇门,然后就去睡觉了....努力不一定能成功,但不努力一定很轻松 (° ー °〃)

    89 引用 • 1251 回帖 • 389 关注