我在表格中添加了一个新列。现在我想用函数 row_number() 中的值更新此列。我想这样做是因为我想删除重复的条目。下面提到的代码没有给出所需的输出
UPDATE tab1
SET rownumber = (SELECT ROW_NUMBER() OVER(ORDER BY name ASC)
FROM tab1 AS a WHERE a.name = b.name)
FROM tab1 b
Run Code Online (Sandbox Code Playgroud)
问题是在表中添加新列时,其值为空。插入到表中添加新行但不替换空值。如何使用函数 ROW_NUMBER() 生成的行号更新空值。
下表是我所拥有的
姓名分数
美国银行 10
商业银行 20
富国银行 135
中西部银行 45
美国银行 10
商业银行 20
现在我想要在删除重复项后的输出
姓名分数
美国银行 10
商业银行 20
富国银行 135
中西部银行 45
我试图添加一个具有唯一值的新列以获得所需的结果。
我们已经完成了翻译api,我们的用户可以为系统添加翻译.api中的一个错误添加了我需要删除的重复行.
与TranslationCompanyKey_Id结合的translationConnection_Id是一个密钥,因此不应该是重复的.我,因为我是SQL的真正傻瓜,我需要一些帮助来创建一个脚本来删除所有重复但保存其中一行.
SELECT TOP 1000 [Id]
,[Value]
,[TranslationConnection_Id]
,[TranslationCompanyKey_Id]
FROM [AAES_TRAN].[dbo].[Translations]
Run Code Online (Sandbox Code Playgroud) 我有sql表但是,一些值添加了多次,我需要删除其中一个.你能给我一个简单的查询吗?
我在SQL Server中有一个类似于这样的表:
Emp# CourseID DateComplete Status
1 Course1 21/05/2012 Failed
1 Course1 22/05/2012 Passed
2 Course2 22/05/2012 Passed
3 Course3 22/05/2012 Passed
4 Course1 31/01/2012 Failed
4 Course1 28/02/2012 Passed
4 Course2 28/02/2012 Passed
Run Code Online (Sandbox Code Playgroud)
试图为每个emp#捕获每个课程的最新记录.如果在同一天尝试相同的课程,则捕获"通过的"课程记录.
按照这些思路思考:
SELECT DISTINCT .....
INTO Dup_Table
FROM MainTable
GROUP BY ........
HAVING COUNT(*) > 1
DELETE MainTable
WHERE Emp# IN (SELECT Emp# FROM Dup_Table)
INSERT MainTable SELECT * FROM Dup_Table
Drop Table Dup_Table
GO
Run Code Online (Sandbox Code Playgroud)
但不确定这是不是
我想选择没有重复的ids 并保留行'5d'而不是'5e'在 select 语句中。
桌子
id | name
1 | a
2 | b
3 | c
5 | d
5 | e
Run Code Online (Sandbox Code Playgroud)
我试过:
SELECT id, name
FROM table t
INNER JOIN (SELECT DISTINCT id FROM table) t2 ON t.id = t2.id
Run Code Online (Sandbox Code Playgroud)