我有一个表tblPhone
,其中包含重复的记录。例如
Group First_Name Middle_Name Last_Name Class ... Note ...Other_Columns
----- ---------- ----------- --------- ----- ... ---- ...-------------
Avo FirstName MiddleName LastName 246 ... NULL ...Other_Columns
Avo FirstName MiddleName LastName 215 ... Valu ...Other_Columns
如您所见,上面的示例表有两个重复的记录,没有唯一标识的KEY。
1)问题1是:如何唯一标识表中的每个重复记录?
2)参见Note
列,该列在第一行具有NULL
的值,在第二行具有Valu
的一些值。问题2是:如何将填充单元格Valu
中的值更新为空/ NULL单元格?
2)问题3:如何获取和更新Class
列中每个单元格中的最低数值?
我尝试编写的UPDATE查询如下,但在CASE ELSE子句中却感到困惑:
UPDATE tblPhone
SET [Note] = CASE WHEN [Note] = '' THEN [Note] = ???
WHERE Last_Name = 'LastName'
AND First_Name = 'FirstName';
我还在SQL Fiddle中创建了示例表架构。
在SQL Server 2017中创建数据库。
您的任何帮助将不胜感激!
答案 0 :(得分:1)
您可以使用子查询:
UPDATE p1
SET p1.[Note] = (
SELECT TOP(1) [Note]
FROM tblPhone p2
WHERE p2.[Note] IS NOT NULL
AND p2.First_Name = p1.First_Name
AND p2.Last_Name = p1.Last_Name
)
FROM tblPhone p1
WHERE p1.[Note] IS NULL;