考虑一个名为EmployeeNametable 的列Employee.目标是根据EmployeeName字段删除重复记录.
EmployeeName
------------
Anand
Anand
Anil
Dipak
Anil
Dipak
Dipak
Anil
Run Code Online (Sandbox Code Playgroud)
使用一个查询,我想删除重复的记录.
如何在SQL Server中使用TSQL?
我想显示PostgreSQL查询返回的每条记录的观察数.
我认为在8.4窗口函数中可以执行此功能.
在一些其他数据库(例如DB2或Oracle ROWNUM)中,我可以省略ORDER BY排名函数子句中的OVER()子句.例如:
ROW_NUMBER() OVER()
Run Code Online (Sandbox Code Playgroud)
当与有序派生表一起使用时,这尤其有用,例如:
SELECT t.*, ROW_NUMBER() OVER()
FROM (
SELECT ...
ORDER BY
) t
Run Code Online (Sandbox Code Playgroud)
如何在SQL Server中进行模拟?我发现人们使用这个 技巧,但这是错误的,因为它对于派生表中的顺序会表现得非确定:
-- This order here ---------------------vvvvvvvv
SELECT t.*, ROW_NUMBER() OVER(ORDER BY (SELECT 1))
FROM (
SELECT TOP 100 PERCENT ...
-- vvvvv ----redefines this order here
ORDER BY
) t
Run Code Online (Sandbox Code Playgroud)
SELECT v, ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) RN
FROM (
SELECT TOP 100 PERCENT 1 UNION ALL …Run Code Online (Sandbox Code Playgroud) 我正在尝试选择特定行号之间的行(例如1到50或51到10等).
下面是我的表MatTk模式,所有列都允许空值:
tk_id [varchar(50)] | mat_id [varchar(50)] | ven_id [varchar(50)] | tk_rate [money]
1023 104 2212 120.11
Run Code Online (Sandbox Code Playgroud)
本文使用Row_Number()建议选择行的子集ORDER BY id但我想避免它并以表数据的自然顺序显示它.
另请查看本文SQL Server 2005 ROW_NUMBER(),不带ORDER BY,建议插入临时表,但它不是一个选项,因为该MatTk表有数百万行.
有没有办法按行号查询行而不按ID排序而不创建临时表?
sql ×4
database ×2
sql-server ×2
t-sql ×2
delete-row ×1
duplicates ×1
postgresql ×1
row-number ×1