【发布时间】:2018-05-29 06:35:15
【问题描述】:
在这里,我的要求非常惊人,需要更新同一个表的列 ParentLinkID = LinkID,其中 Title 等于 ParentLinkTitle。注意:Title 和 ParentLinkTitle 位于不同的行中。如此处所述,如何更新 ParentLinkID?
CREATE TABLE #temp
(
LinkID INT,
Title NVARCHAR(100),
ParentLinkID INT,
ParentLinkTitle NVARCHAR(100)
)
INSERT INTO #temp
( LinkID ,
Title ,
ParentLinkID ,
ParentLinkTitle
)
VALUES ( 1 , -- LinkID - int
N'Dashboard' , -- Title - nvarchar(100)
0 , -- ParentLinkID - int
N'Ecommerce' -- ParentLinkTitle - nvarchar(100)
),
( 2 , -- LinkID - int
N'User' , -- Title - nvarchar(100)
0 , -- ParentLinkID - int
N'' -- ParentLinkTitle - nvarchar(100)
),
( 3 , -- LinkID - int
N'Ecommerce' , -- Title - nvarchar(100)
0 , -- ParentLinkID - int
N'User' -- ParentLinkTitle - nvarchar(100)
),
( 4 , -- LinkID - int
N'Shipping' , -- Title - nvarchar(100)
0 , -- ParentLinkID - int
N'Business' -- ParentLinkTitle - nvarchar(100)
),
( 5 , -- LinkID - int
N'Product' , -- Title - nvarchar(100)
0 , -- ParentLinkID - int
N'Dashboard' -- ParentLinkTitle - nvarchar(100)
),
( 6 , -- LinkID - int
N'Business' , -- Title - nvarchar(100)
0 , -- ParentLinkID - int
N'Product' -- ParentLinkTitle - nvarchar(100)
);
SELECT * FROM #temp
--Base Table
LinkID Title ParentLinkID ParentLinkTitle
1 Dashboard 0 Ecommerce
2 User 0
3 Ecommerce 0 User
4 Shipping 0 Business
5 Product 0 Dashboard
6 Business 0 Product
需要更新以上#temp 表的ParentLinkID 列,如下输出:
--OUTPUT
LinkID LinkTitle IsActive ParentLinkID ParentLinkTitle
1 Dashboard 1 3 Ecommerce
2 User 1 0 0
3 Ecommerce 1 2 User
4 Shipping 1 6 Business
5 Product 1 1 Dashboard
6 Business 1 5 Product
【问题讨论】:
标签: sql sql-server tsql sql-update