我正在使用 SQL Server 管理 Studio 2010。
如果记录包含第一次出现的值,我需要我的查询来填充列。
我的查询返回的表很大,所以我将使用假装列来表达我的观点。我的查询当前返回一个看起来像这样的表
| ROW | ItemNumber | DateOpen | Status |
| 1 | 10045 | 5/5/2005 | Open |
| 2 | 10045 | 5/5/2005 | Open |
| 3 | 10046 | 5/5/2005 | Open |
| 4 | 10046 | 5/5/2005 | Open |
| 5 | 10046 | 5/5/2005 | Open |
我已经将行指示符添加到查询中,认为这将有助于识别第一次出现的 ItemNumber。如果记录是第一次出现,我需要有一个标记 X 的新列。
到目前为止我有这个
DECLARE @ItemData Table(itemRow BIGINT, itemNumber BIGINT, DateOpen VARCHAR(15), status VARCHAR(15))
INSERT INTO @ItemData (itemRow, ItemNumber, DateOpen, Status)
SELECT Row_Number() OVER(ORDER BY Cm_ItemNumber) AS 'ROW'
,Cm_ItemNumber AS ItemNumber
,Dates_DateOpen AS DateOpen
,St_Status AS Status
FROM db_Items
JOIN db_Dates ON Dates_Item = Cm_ItemID
JOIN db_Status ON St_ID = Cm_StatusID
Select * from @ItemData
将其放入表中然后单独选择的原因是因为查询中实际上有一个联合和更多内容,当我意识到我需要做一个唯一的检查器并将其添加到列中时,我认为最简单的方法是“事后”类型的东西,它会进入该 Select * from @ItemData
部分。