SQL Server - 将值与所有identic ID对齐

时间:2017-12-19 17:39:58

标签: sql sql-server

如果出现以下情况,甚至不知道从哪里开始。因此,我们非常感谢一些意见。

重要的是要知道语句需要以SELECT开头。

我需要确定记录是否在类别字段中有条目。如果有,我需要将该确切类别分配给与ID匹配的所有列。

ID | Firstname | Lastname | category
--------------------------------------
01 | John | Smith | bike 
01 | John | Smith |  
01 | John | Smith |  
02 | Tobi | Miller |  
02 | Tobi | Miller | bike 
02 | Tobi | Miller |  
03 | Kelly | Schult | car 
03 | Kelly | Schult | car 
03 | Kelly | Schult | 


desired result:

ID | Firstname | Lastname | category
--------------------------------------
01 | John | Smith | bike 
01 | John | Smith | bike
01 | John | Smith | bike 
02 | Tobi | Miller | bike 
02 | Tobi | Miller | bike 
02 | Tobi | Miller | bike 
03 | Kelly | Schult | car 
03 | Kelly | Schult | car 
03 | Kelly | Schult | car

1 个答案:

答案 0 :(得分:3)

您可以使用窗口功能:

select id, firstname, lastname,
       max(category) over (partition by id) as category
from t;

如果您确实想将值存储在表中。 。 。重新考虑。你应该有一个表每个id只有一行。该行应存储您想要的类别。您可以使用join来获取值,而不是将相同的值存储在多行中。