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

问题描述 投票:0回答:1

如果有以下情况,甚至不知道从哪里开始。所以一些意见真的很感激。

重要的是要知道语句需要以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
sql sql-server
1个回答
3
投票

您可以使用窗口功能:

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

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

© www.soinside.com 2019 - 2024. All rights reserved.