SQL 服务器 table 列的有条件更新
Conditional update of SQL Server table column
我必须有条件地更新 table(比如 table 名称是 SQL 服务器中的 Venues
,即如果列(比如列名称是 Venue_Name
) in Venues
CONTAINS sub-string 'C_' then SET a column (say column name is Venue_Type
) in Venues
= Conference
.
我试过这个查询:
IF Venue_Name CONTAINS 'C_'
UPDATE Venues SET Venue_Type = 'Conference'
ELSE IF Venue_Name CONTAINS 'J_'
UPDATE Venues SET Venue_Type = 'Journal'
ELSE
UPDATE Venues SET Venue_Type = 'Other'
但在使用关键字 CONTAINS
时发现错误。
你需要的是一个CASE
表达式:
UPDATE Venues
SET Venue_Type = CASE
WHEN Venue_Name LIKE '%C[_]%' THEN 'Conference'
WHEN Venue_Name LIKE '%J[_]%' THEN 'Journal'
ELSE 'Other'
END
我必须有条件地更新 table(比如 table 名称是 SQL 服务器中的 Venues
,即如果列(比如列名称是 Venue_Name
) in Venues
CONTAINS sub-string 'C_' then SET a column (say column name is Venue_Type
) in Venues
= Conference
.
我试过这个查询:
IF Venue_Name CONTAINS 'C_'
UPDATE Venues SET Venue_Type = 'Conference'
ELSE IF Venue_Name CONTAINS 'J_'
UPDATE Venues SET Venue_Type = 'Journal'
ELSE
UPDATE Venues SET Venue_Type = 'Other'
但在使用关键字 CONTAINS
时发现错误。
你需要的是一个CASE
表达式:
UPDATE Venues
SET Venue_Type = CASE
WHEN Venue_Name LIKE '%C[_]%' THEN 'Conference'
WHEN Venue_Name LIKE '%J[_]%' THEN 'Journal'
ELSE 'Other'
END