GVKun编程网logo

SQL Server 求记录中的最新数据的方法(sql server查询最新数据)

29

在这里,我们将给大家分享关于SQLServer求记录中的最新数据的方法的知识,让您更了解sqlserver查询最新数据的本质,同时也会涉及到如何更有效地mssqlsqlserver使用sql脚本清空所

在这里,我们将给大家分享关于SQL Server 求记录中的最新数据的方法的知识,让您更了解sql server查询最新数据的本质,同时也会涉及到如何更有效地mssql sqlserver 使用 sql 脚本 清空所有数据库表数据的方法分享、mssql sqlserver 使用sql脚本 清空所有数据库表数据的方法分享、mysql oracle sqlserver查询n条记录数据的方法、SQL Server SQL语句分组获取记录的第一条数据的方法的内容。

本文目录一览:

SQL Server 求记录中的最新数据的方法(sql server查询最新数据)

SQL Server 求记录中的最新数据的方法(sql server查询最新数据)

/*已知数据:

Column1   Column2     Column3    Column4
A         10           am         1999-01-01 00:00:00.000
A         11           am         1999-01-02 00:00:00.000                    
B         12           bm         1999-01-03 00:00:00.000                    
B         13           bm         1999-01-04 00:00:00.000                   
C         14           cm         1999-01-05 00:00:00.000                    
C         15           cm         1999-01-06 00:00:00.000

要求得到数据:

Column1  Column2     Column3     Column4                  
A        11             am      1999-01-02 00:00:00.000                    
B        13             bm      1999-01-04 00:00:00.000                    
C        15             cm      1999-01-06 00:00:00.000 */

--数据装载

Create Table #T(Column1 varchar(10),Column2 int,Column3 varchar(10),Column4 datetime)
insert #T select 'A',10,'am','1999-1-1'
union all select 'A',11,'am','1999-1-2'
union all select 'B',12,'bm','1999-1-3'
union all select 'B',13,'bm','1999-1-4'
union all select 'C',14,'cm','1999-1-5'
union all select 'C',15,'cm','1999-1-6'

--测试语句 方法1:

select a.* from #T a
where (a.Column4) = (select top 1 (Column4) from #T where Column1 = a.Column1 order by Column4 desc)

--测试结果:

Column1    Column2     Column3    Column4
---------- ----------- ---------- ------------------------------------------------------
A          11          am         1999-01-02 00:00:00.000
B          13          bm         1999-01-04 00:00:00.000
C          15          cm         1999-01-06 00:00:00.000

--测试语句 方法2:(最佳效率)

select a.* from #T a join( select Column1,Column4=max(Column4)
from #T group by Column1 ) b on a.Column1=b.Column1 and a.Column4=b.Column4 order by a.Column1

--测试结果 方法2:

Column1    Column2     Column3    Column4                                               
---------- ----------- ---------- ------------------------------------------------------
A          11          am         1999-01-02 00:00:00.000
B          13          bm         1999-01-04 00:00:00.000
C          15          cm         1999-01-06 00:00:00.000

http://www.west263.com/www/info/28485-1.htm

mssql sqlserver 使用 sql 脚本 清空所有数据库表数据的方法分享

mssql sqlserver 使用 sql 脚本 清空所有数据库表数据的方法分享

摘要:下文讲述清空数据库中所有表信息的方法分享,如下所示:实验环境:sql server 2008


实现思路: 1. 禁用所有约束,外键 2. 禁用所有触发器 3. 删除表数据 4. 开启触发器 5. 开启约束

CREATE PROCEDURE proc_deleteDateSql
 /*
  生成清除数据库表数据的脚本方法分享
 */
AS
EXEC sp_MSForEachTable ''ALTER TABLE ? NOCHECK CONSTRAINT ALL''
EXEC sp_MSForEachTable ''ALTER TABLE ? DISABLE TRIGGER ALL''
EXEC sp_MSForEachTable ''delete from ?''
EXEC sp_MSForEachTable ''ALTER TABLE ? CHECK CONSTRAINT ALL''
EXEC sp_MSForEachTable ''ALTER TABLE ? ENABLE TRIGGER ALL''
EXEC sp_MSFOREACHTABLE ''SELECT * FROM ?''
GO


--生成脚本信息
exec proc_deleteDateSql 

go

drop proc  proc_deleteDateSql 
go

此方法请谨慎使用,因为执行后,会导致所有数据丢失,并且不可恢复, 如出现外键约束,最好先删除外键信息,

如: 批量删除 MSSQL 中主外键约束

转自:http://www.maomao365.com/?p=7544

mssql sqlserver 使用sql脚本 清空所有数据库表数据的方法分享

mssql sqlserver 使用sql脚本 清空所有数据库表数据的方法分享

摘要: 下文讲述清空数据库中所有表信息的方法分享,如下所示: 实验环境:sql server 2008

实现思路: 1.禁用所有约束,外键 2.禁用所有触发器 3.删除表数据 4.开启触发器 5.开启约束

CREATE PROCEDURE proc_deleteDatesql
 /*
  生成清除数据库表数据的脚本方法分享
 */
AS
EXEC sp_MSForEachTable ‘ALTER TABLE ? NOCHECK CONSTRAINT ALL‘
EXEC sp_MSForEachTable ‘ALTER TABLE ? disABLE TRIGGER ALL‘
EXEC sp_MSForEachTable ‘delete from ?‘
EXEC sp_MSForEachTable ‘ALTER TABLE ? CHECK CONSTRAINT ALL‘
EXEC sp_MSForEachTable ‘ALTER TABLE ? ENABLE TRIGGER ALL‘
EXEC sp_MSFOREACHTABLE ‘SELECT * FROM ?‘
GO


--生成脚本信息
exec proc_deleteDatesql 

go

drop proc  proc_deleteDatesql 
go

此方法请谨慎使用,因为执行后,会导致所有数据丢失,并且不可恢复, 如出现外键约束,最好先删除外键信息,

如:批量删除MSSQL 中主外键约束

转自:http://www.maomao365.com/?p=7544

mysql oracle sqlserver查询n条记录数据的方法

mysql oracle sqlserver查询n条记录数据的方法

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入 mysql oracle sqlserver查询n条记录数据的方法 SELECT * FROM table LIMIT 5; select * from issu_info limit 0,6 Limit 0,6 这里是对的,显示前6条 select * from issu_info limit 7,6; Limit 7,6

欢迎进入oracle社区论坛,与200万技术人员互动交流 >>进入

  mysql  oracle  sqlserver查询n条记录数据的方法

  SELECT   *   FROM   table   LIMIT   5;

  select     *     from     issu_info     limit     0,6

  Limit     0,6

  这里是对的,显示前6条

  select     *     from     issu_info     limit     7,6;

  Limit     7,6

  从第8条开始取,取6条

  select     *     from     table     order     by     rand()     limit     1

  这是随机选取一个记录,如果想提取多个就将1改为你想要的数目Top

  在mysql中利用select语句的一个特性就可以很方便地实现查询结果的分页,select语句的语法:

  SELECT [STRAIGHT_JOIN] [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [HIGH_PRIORITY]

  [DISTINCT | DISTINCTROW | ALL]

  select_expression,…

  [INTO OUTFILE ''file_name'' export_options]

  [FROM table_references

  [WHERE where_definition]

  [GROUP BY col_name,…]

  [HAVING where_definition]

  [ORDER BY {unsigned_integer | col_name | formula} [ASC | DESC] ,…]

  [LIMIT [offset,] rows]

  [PROCEDURE procedure_name] ]

  LIMIT子句可以用来限制由SELECT语句返回过来的数据数量,它有一个或两个参数,如果给出两个参数,

  第一个参数指定返回的第一行在所有数据中的位置,从0开始(注意不是1),第二个参数指定最多返回行

  数。例如:

  select * from table LIMIT 5,10; #返回第6-15行数据

  select * from table LIMIT 5; #返回前5行

  select * from table LIMIT 0,5; #返回前5行

  SQL在不同数据库中查询前几条记录的用法2008-03-30 上午 10:261. ORACLE

  SELECT * FROM TABLE1 WHERE ROWNUM

  2. INFORMIX

  SELECT FIRST N * FROM TABLE1

  3. DB2

  SELECT * ROW_NUMBER() OVER(ORDER BY COL1 DESC) AS ROWNUM WHERE ROWNUM

  或者

  SELECT COLUMN FROM TABLE FETCH FIRST N ROWS ONLY

  4. SQL SERVER

  SELECT TOP N * FROM TABLE1

  5. SYBASE

  SET ROWCOUNT N

  GO

  SELECT * FROM TABLE1

  6. MYSQL

  SELECT * FROM TABLE1 LIMIT N

  7. FOXPRO

  SELECT * TOP N FROM TABLE ORDER BY COLUMN

  8.postgres查询前几条记录SQL

  SELECT * FROM TABLE LIMIT

  select   id   from   mytable   order   by   update_date   desc   limit   0,3;

mysql  oracle  sqlserver查询n条记录数据的方法

SQL Server SQL语句分组获取记录的第一条数据的方法

SQL Server SQL语句分组获取记录的第一条数据的方法

感兴趣的小伙伴,下面一起跟随小编 jb51.cc的小编两巴掌来看看吧!

使用northwind 数据库

首先查询Employees表

查询结果:

【图片暂缺】

city列里面只有5个城市

使用ROW_NUMBER() OVER(PARTITION BY COL1 ORDER BY COL2) 先进行分组 注:根据COL1分组,在分组内部根据 COL2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的).

sql语句为:

select EmployeeID,LastName,FirstName,Title,TitleOfCourtesy,City,ROW_NUMBER() over(partition by City order by EmployeeID) as new_index  
from Employees

执行结果图:

【图片暂缺】

可以看到是按照City分组,EmployeeID排序。

select出分组中的第一条记录

执行语句:

select * from
(select EmployeeID,ROW_NUMBER() over(partition by City order by EmployeeID) as new_index  
from Employees) a where a.new_index=1

执行结果图:

【图片暂缺】

今天关于SQL Server 求记录中的最新数据的方法sql server查询最新数据的讲解已经结束,谢谢您的阅读,如果想了解更多关于mssql sqlserver 使用 sql 脚本 清空所有数据库表数据的方法分享、mssql sqlserver 使用sql脚本 清空所有数据库表数据的方法分享、mysql oracle sqlserver查询n条记录数据的方法、SQL Server SQL语句分组获取记录的第一条数据的方法的相关知识,请在本站搜索。

本文标签: