Sql 要使用其他行中的已知值除去空值吗
我在数据库中有一个日志列表。每个日志都与一个人关联。每个人都与一个组相关联。但是,某些组字段出于任何原因都为空 我想为这些人使用其他行中的已知组值,并在Select语句中使用大小写替换空值(对其他想法开放,只是不更新或创建表;) 即 我想要的是Sql 要使用其他行中的已知值除去空值吗,sql,select,null,case,Sql,Select,Null,Case,我在数据库中有一个日志列表。每个日志都与一个人关联。每个人都与一个组相关联。但是,某些组字段出于任何原因都为空 我想为这些人使用其他行中的已知组值,并在Select语句中使用大小写替换空值(对其他想法开放,只是不更新或创建表;) 即 我想要的是 ID NAME GROUP ==================== 1 Alex Austin 2 Amanda San Antonio 3 Alex Austin 4 J
ID NAME GROUP
====================
1 Alex Austin
2 Amanda San Antonio
3 Alex Austin
4 John Toronto
以下是执行此操作的ANSI语法:
update t
set "group" = (select max("group") from t t2 where t2.name = t.name)
where "group" is null;
像这样的怎么样
UPDATE Table1
SET [Group] = g.[Group]
FROM Table1 t INNER JOIN (
SELECT [Name], [Group]
FROM Table1
WHERE [Group] IS NOT NULL
) g ON t.Name = g.Name
WHERE t.[Group] IS NULL
看看这个演示
在此假设中,只有一个非空组和名称的组合。另一方面,它会导致1-many连接。这可以根据您的选择标准进行更正
UPDATE Table1
SET [Group] = g.[Group]
FROM Table1 t INNER JOIN (
SELECT [Name], [Group]
FROM Table1
WHERE [Group] IS NOT NULL
) g ON t.Name = g.Name
WHERE t.[Group] IS NULL
Update NLGS
Set NLGS.Group =LGS.Group
FROM
Logs NLGS
INNER JOIn
(select Name,Group from logs
WHER GROUp is not null) LGS
ON NLGS.Name=LGS.NAME
WHERE NLGS.GROUP IS NULL