SQL Server基础知识与top和分页

本文介绍了SQL Server中的数据查询语言DQL,重点讲解了如何使用`SELECT`进行条件查询、排序、分组以及常用函数。特别讨论了`ORDER BY`排序、`TOP`获取特定数量行和分页查询的`OFFSET FETCH`子句,包括不同场景的应用实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 .DQL 数据查询语言(核心) :select(查询)

    · 条件查询 : where , distinct , 逻辑运算符

   · 分组 :group by having

   · 排序 :order by

   · 常用函数等

   · 子查询

   · 多表关联 :左连接

 在SQL server中常用5类的函数:字符串函数,日期函数,数学函数,系统函数,聚合函数。

字符串函数

--常用的字符串函数

  • 1.charindex() -- 字符索引
  • 2.len() -- 长度
  • 3.upper() -- 大写
  • 4.Ltrim() -- 左裁减
  • 5.Rtrim() -- 右裁减
  • 6.Left() -- 左
  • 7.Right() -- 右
  • 8.stuff() -- 删除并添加
  • 9.replace() -- 查找并替换

 /* charindex() 用来查询指定字符串在另一个字符串中的起始位置

Len :按长度来排序

例:

Select AchievementID,UserID,StTime    

         from [dbo].[PW_Achievement]

         order by len( AchievementID  ) asc

1.查询表单信息

(1)如何查询表的所有内容

            SELECT * FROM 表名   (select * "*"号代表选择所有内容

 

Select AchievementID,UserID,StTime from [dbo].[PW_Achievement]

AchievementID,UserID,StTime  [dbo].[PW_Achievement] 里的名称,查询AchievementID,UserID,StTime里的数据。

(2)如何查询指定表中的指定列

           SELECT 字段1,字段2,字段…… FROM 表名  (逗号隔开)

(3)可以通过数字来作为载体。来查询数据。

AchievementID 是1 , UserID 是2 , StTime 是3    /

例:

Select AchievementID,UserID,StTime    

         from [dbo].[PW_Achievement]

         order by 1,3

2.order by 排序

Order by (desc ,倒序排序 A~Z  ,   0~)desc

例:

Select AchievementID,UserID,StTime    

         from [dbo].[PW_Achievement]

         order by AchievementID

        

Order by  字段  asc

asc是升序,从小到大排序显示;

desc是降序,从大到小显示。

例:

Select AchievementID,UserID,StTime    

         from [dbo].[PW_Achievement]

         order by AchievementID asc


 

3.top

(1)Top  数字(查询行数)

Select AchievementID,UserID,StTime    

         from [dbo].[PW_Achievement]

         order by AchievementID asc

查询前10行(top 10)。

(2)Top 数字 percent(查询百分百)

Select top 10 percent  AchievementID,UserID,StTime    

         from [dbo].[PW_Achievement]

         order by AchievementID asc

注:但百分百的数字有小数时,它会进一位。

12.512.2 。。。,这类的数值它会返回 13 条数据。

(3)Top  数字 WITH TIES(查询返回数值的前几行数据,并与倒数第一行匹配)

Select top 10 WITH TIES  AchievementID,UserID,StTime    

         from [dbo].[PW_Achievement]

         order by AchievementID asc

4.分页查询

SQL Server Offset Fetch子句

OFFSET和FETCH子句是ORDER BY子句的选项。它们用于限制查询返回的行数。必须将OFFSET和FETCH子句与ORDER BY子句一起使用

OFFSET和FETCH子句比实现TOP子句更适合实现查询分页解决方案

以下是OFFSET和FETCH子句的语法:

ORDER BY column_list [ASC DESC]

OFFSET offset_row_count (ROW ROWS}

 FETH [FIRST I NEXT}fetch_row_count [ROW I ROWS]ONLY

sql

在上面语法中

·offset子句指定在开始从查询返回行之前要跳过的行数。offset_row_count可以是大于或等于零的常量,变量或参数。

·FETCH子句指定在处理OFFSET子句后要返回的行数。offset._row_count可以是大于或等于1的常量,变量或标量,

·OFFSET子句是必需的,而FETCH子句是可选的。此外,FIRST和NEXT是同义词,因此可以互换使用它们.

Select  AchievementID,UserID,StTime    

         from [dbo].[PW_Achievement]

         order by AchievementID asc

       offset 0 rows

       fetch next 10 rows only           第0行到第10行

 offset 0 rows (在第几行开始)

 fetch next 10 rows only (代表的是要查询的条数)

假设:num(第几页)    size(每面行数)公式

Select  AchievementID,UserID,StTime    

         from [dbo].[PW_Achievement]

         order by AchievementID asc

       offset (num - 1)* size rows

       fetch next size rows only 

本篇文章就到这里,感谢观看。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值