SQL学习笔记!

SELECT *
FROM [TABLENAME]
WHERE (ID IN
          (SELECT TOP [页容量] ID
         FROM [TABLENAME]
         WHERE ID IN
                   (SELECT TOP 页容量*页数 ID
                  FROM [TABLENAME])
         ORDER BY ID DESC))

这个是SQL的一种分页方法!


SELECT TOP 20 *
FROM Part
ORDER BY NEWID()

这个是从数据库中随机的取出20条记录!

补充:

 要实现随机取记录,请看:
Sql server:
    select top 20 * from 表 order by newid()
Access:
    SELECT top 20 * FROM 表 ORDER BY Rnd(id) 
    Rnd(id) 其中的id是自动编号字段,可以利用其他任何数值来完成
    比如用姓名字段(UserName)
    SELECT top 20 * FROM 表 ORDER BY Rnd(len(UserName)) 
MySql:
    Select * From 表 Order By rand() Limit 20

查找并显示重复了的记录,没有重复的不显示!

SELECT *
FROM test
WHERE (name IN
          (SELECT name
         FROM test
         GROUP BY name
         HAVING (COUNT(*) > 1)))
ORDER BY name

 

 

又一个比较经典的SQL语句,作者花了不少心思,语句也写得非常复

表 T1
A      B      
11      b1      
11      b2      
11      b3      
11      b4      
12      b1      
12      b2      
12      b3      
13      b1      
13      b2      
13      b3      
13      b4      
13      b5      

结果:
11      b1      b2      b3
11      b4
12      b1      b2      b3
13      b1      b2      b3
13      b4      b5      

存入表T2
按相同的 T1.A 分开, T1.B 按顺序一次放入T2的三个字段中。一条语句处理。

原来需要这个结果的发帖人,只是想改变数据的存放方式。

其实结果并不是很重要的,重要的是如何实现这个过程。

SELECT A, MAX(CASE a.Num % 3 WHEN 0 THEN a.B END) AS B1,
      MAX(CASE a.Num % 3 WHEN 1 THEN a.B END) AS B2,
      MAX(CASE a.Num % 3 WHEN 2 THEN a.B END) AS B3
FROM (SELECT T1.A, T1.B,
                  (SELECT COUNT(*)
                 FROM T1 a
                 WHERE A = T1.A AND B < T1.B) Num
        FROM T1) a
GROUP BY A, Num / 3
ORDER BY A, Num / 3

语句是看到别人的启发写出来的,同时也让我了解了一些原理,比如
GROUP BY Num / 3 与 GROUP BY Num 的区别。

这个是来自Leadbbs的论谈朋友写出来的,很复杂,还没有学懂,有空再细品。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值