在论坛中出现的比较难的sql问题:23(随机填充问题)
原文:在论坛中出现的比较难的sql问题:23(随机填充问题)
最近,在论坛中,遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记解决的方法了。
所以,觉得有必要记录下来,这样以后再次碰到这类问题,也能从中获取解答的思路。
1、一段SQL的写法,求方法!
http://bbs.csdn.net/topics/390705441
select * from k11 有10條紀錄
files1 files2 files3 files4
AA BB CC DD
ZZ EE TT YY
NN MM GG UU
另外一个表User 有99条记录,现在要随机在User这个表里面随机选3条记录
select top 3 NewID() as random,[UserId] from [User]
random UserId
E81A4DBB ming
F31B3B6C ling
16574317 Ting
将User这个表上的UserId值结果平均分配到k11上面那个表上,最后結果顯示如下
files1 files2 files3 files4 UserId
A1 BB CC DD ming
A2 EE TT YY ling
A3 MM GG UU ling
A4 XX XX XX ming
A5 XX XX XX ling
A6 XX XX XX Ting
A7 XX XX XX ming
A8 XX XX XX ling
A9 XX XX XX ling
A10 XX XX XX ming
sql代码:
-
create table k11(
-
files1 varchar(10),
-
files2 varchar(10),
-
files3 varchar(10),
-
files4 varchar(10),
-
UserId varchar(10))
-
-
insert into k11
-
select 'A1', 'BB', 'CC', 'DD', 'ming' union all
-
select 'A2', 'EE', 'TT', 'YY', 'ling' union all
-
select 'A3', 'MM', 'GG', 'UU', 'Ting' union all
-
select 'A4', 'XX', 'XX', 'XX', 'ming' union all
-
select 'A5', 'XX', 'XX', 'XX', 'ling' union all
-
select 'A6', 'XX', 'XX', 'XX', 'Ting' union all
-
select 'A7', 'XX', 'XX', 'XX', 'ming' union all
-
select 'A8', 'XX', 'XX', 'XX', 'ling' union all
-
select 'A9', 'XX', 'XX', 'XX', 'Ting' union all
-
select 'A10', 'XX', 'XX', 'XX', 'ming'
-
-
-
create table [user]
-
(
-
UserId varchar(10)
-
)
-
-
insert into [user]
-
select 'ming' union all
-
select 'ling' union all
-
select 'Ting'
-
go
-
-
-
;with t
-
as
-
(
-
select [UserId],
-
ROW_NUMBER() over(order by newid()) as rownum
-
from [User]
-
),
-
-
tt
-
as
-
(
-
select *,
-
case when rownum1 %3 =0 then 3 else rownum1 %3 end as rownum
-
from
-
(
-
select *,
-
ROW_NUMBER() over(order by getdate()) as rownum1
-
from k11
-
)a
-
)
-
-
select tt.files1,tt.files2,tt.files3,tt.files4,t.UserId
-
from tt
-
left join t
-
on tt.rownum = t.rownum
-
and t.rownum <=3
-
/*
-
files1 files2 files3 files4 UserId
-
A1 BB CC DD ming
-
A2 EE TT YY ling
-
A3 MM GG UU Ting
-
A4 XX XX XX ming
-
A5 XX XX XX ling
-
A6 XX XX XX Ting
-
A7 XX XX XX ming
-
A8 XX XX XX ling
-
A9 XX XX XX Ting
-
A10 XX XX XX ming
-
*/
2、随机返回100条数据:
如果表比较大,有上千万的数据,那么通过如下的代码,可以随机返回100条数据,这里的随机,不是真正意义上的随机,但确实能让人感觉是随机,也就是每次返回的数据都不一样,最关键的是速度非常快,接近于0秒,只消耗了 62毫秒。
-
select *
-
from
-
(
-
select *,
-
ROW_NUMBER() over(order by @@servername) as rownum
-
from dbo.xxx
-
)t
-
where rownum between CHECKSUM(getdate()) % 10000 and CHECKSUM(getdate()) % 10000+99
SQL Server 分析和编译时间:
CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。
(100 行受影响)
SQL Server 执行时间:
CPU 时间 = 0 毫秒,占用时间 = 62 毫秒。
在论坛中出现的比较难的sql问题:23(随机填充问题)的更多相关文章
- 在论坛中出现的比较难的sql问题:46(日期条件出现的奇怪问题)
原文:在论坛中出现的比较难的sql问题:46(日期条件出现的奇怪问题) 最近,在论坛中,遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记解决的方法了. 所以,觉得有 ...
- 在论坛中出现的比较难的sql问题:45(用户在线登陆时间的小时、分钟计算问题)
原文:在论坛中出现的比较难的sql问题:45(用户在线登陆时间的小时.分钟计算问题) 最近,在论坛中,遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记解决的方法了. ...
- 在论坛中出现的比较难的sql问题:44(触发器专题 明细表插入数据时调用主表对应的数据)
原文:在论坛中出现的比较难的sql问题:44(触发器专题 明细表插入数据时调用主表对应的数据) 最近,在论坛中,遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记解决 ...
- 在论坛中出现的比较难的sql问题:42(动态行转列 考勤时间动态列)
原文:在论坛中出现的比较难的sql问题:42(动态行转列 考勤时间动态列) 所以,觉得有必要记录下来,这样以后再次碰到这类问题,也能从中获取解答的思路.
- 在论坛中出现的比较难的sql问题:41(循环替换 循环替换关键字)
原文:在论坛中出现的比较难的sql问题:41(循环替换 循环替换关键字) 所以,觉得有必要记录下来,这样以后再次碰到这类问题,也能从中获取解答的思路.
- 在论坛中出现的比较难的sql问题:40(子查询 销售和历史库存)
原文:在论坛中出现的比较难的sql问题:40(子查询 销售和历史库存) 最近,在论坛中,遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记解决的方法了. 所以,觉得有 ...
- 在论坛中出现的比较难的sql问题:39(动态行转列 动态日期列问题)
原文:在论坛中出现的比较难的sql问题:39(动态行转列 动态日期列问题) 最近,在论坛中,遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记解决的方法了. 所以,觉 ...
- 在论坛中出现的比较难的sql问题:38(字符拆分 字符串检索问题)
原文:在论坛中出现的比较难的sql问题:38(字符拆分 字符串检索问题) 最近,在论坛中,遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记解决的方法了. 所以,觉得 ...
- 在论坛中出现的比较难的sql问题:37(动态行转列 某一行数据转为列名)
原文:在论坛中出现的比较难的sql问题:37(动态行转列 某一行数据转为列名) 所以,觉得有必要记录下来,这样以后再次碰到这类问题,也能从中获取解答的思路.
- 在论坛中出现的比较难的sql问题:36(动态行转列 解析json格式字符串)
原文:在论坛中出现的比较难的sql问题:36(动态行转列 解析json格式字符串) 所以,觉得有必要记录下来,这样以后再次碰到这类问题,也能从中获取解答的思路.
随机推荐
- Spring Boot CLI——centos7
Spring Boot是一个命令行工具,用于使用Spring进行快速原型搭建.它允许你运行Groovy脚本,这意味着你可以使用类Java的语法,并且没有那么多的模板代码. 所有版本下载地址这里下载的版 ...
- rm: cannot remove `xxx': Read-only file system
linux 中出现 Read-only file system - Aidon博客 - CSDN博客 https://blog.csdn.net/u010839779/article/details/ ...
- Syntax error: "(" unexpected shell里面的报错解决
author:headsen chen date : 2019-08-08 11:11:38 notice : 个人原创 Ubuntu上运行shell脚本总是报下面这个错误,在centos下面或者 ...
- Flutter 介绍、运行环境
Flutter 是谷歌公司开发的一款开源.免费的移动 UI 框架,可以让我们快速的在 Android 和iOS 上构建高质量 App.它最大的特点就是跨平台.以及高性能. Flutter 基于谷歌的 ...
- Oracle中复制表的方法(create as select、insert into select、select into)
转: Oracle中复制表的方法(create as select.insert into select.select into) 2018-07-30 22:10:37 小白白白又白cdllp 阅读 ...
- linux配置docker报错:ImportError: No module named yum
如题,安装docker后配置仓库报错: [root@centos ~]# yum-config-manager --add-repo https://download.docker.com/linux ...
- sql 获取某一时段中每一天中最大的时间的一条记录
SELECT *FROM ( SELECT ROW_NUMBER() OVER( PARTITION BY CONVERT(CHAR(10), DataTime, 120) ORDER BY Data ...
- 03点睛Spring4.1-scope
转载:https://www.iteye.com/blog/wiselyman-2210377 3.1 scope scope描述spring容器是怎么样新建类的实例的(bean); 在spring中 ...
- 如何解决mac brew遇到无法下载的依赖?
使用brew安装软件时,需要下载依赖包,但是如果依赖包特别大的时候,就很容易失败:brew本身不支持断点续传:但是可以使用wget -c的方式断点续传的下载依赖:下载完如何给brew安装使用呢?参考: ...
- 高级UI-自定义动画框架
有的时候会需要做一些自定义的动画效果,在会反复用到的动画效果可以考虑做成动画框架,方便使用,做成框架的话就需要考虑很多的问题,最典型的问题就是属性和方法必须要是可配置的,这里就来聊一聊自定义动画框架的 ...
