相关疑难解决方法(0)

删除SQL Server中的重复记录?

考虑一个名为EmployeeNametable 的列Employee.目标是根据EmployeeName字段删除重复记录.

EmployeeName
------------
Anand
Anand
Anil
Dipak
Anil
Dipak
Dipak
Anil
Run Code Online (Sandbox Code Playgroud)

使用一个查询,我想删除重复的记录.

如何在SQL Server中使用TSQL?

sql t-sql duplicates delete-row

85
推荐指数
3
解决办法
8万
查看次数

如何在PostgreSQL查询中显示行号?

我想显示PostgreSQL查询返回的每条记录的观察数.

我认为在8.4窗口函数中可以执行此功能.

sql database postgresql

70
推荐指数
2
解决办法
9万
查看次数

为派生表计算SQL Server ROW_NUMBER()OVER()

在一些其他数据库(例如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)

一个具体的例子(可以在SQLFiddle看到):

SELECT v, ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) RN
FROM (
  SELECT TOP 100 PERCENT 1 UNION ALL …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server window-functions ranking-functions

12
推荐指数
1
解决办法
4万
查看次数

使用带有ORDER BY ID的Row_Number()选择行

我正在尝试选择特定行号之间的行(例如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 database sql-server row-number sql-server-2008-r2

1
推荐指数
1
解决办法
73
查看次数