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