UPDATE [Audit].[mfw].[Audit]
SET AuditObjectType = '200'
WHERE AuditObjectType = '30'/span> AND Module = '23'
UPDATE [Audit].[mfw].[Audit] 。
SET AuditObjectType = '201'。
WHERE AuditObjectType = '31'/span> AND Module = '23'
UPDATE [Audit].[mfw].[Audit] 。
SET AuditObjectType = '202'/span>
WHERE AuditObjectType = '32'/span> AND Module = '23'
UPDATE [Audit].[mfw].[Audit] 。
SET AuditObjectType = '203'/span>
WHERE AuditObjectType = '33'/span> AND Module = '23'
我有4個更新查詢,針對1個列,但其中有多個欄位,我想在一個查詢中完成。 我想有了這個案例就好了,但是不知道如何用一個模塊來管理這一列,在這種情況下,什么是常量值,它是23。
update [Audit]. [mfw]. [Audit]
set AuditObjectType = (case AuditObjectType
when '30' then '200'
when '31' then '201'
when '32' then '202'
when '33' then '203'
else AuditObjectType
end)
WHERE Module = '23'
uj5u.com熱心網友回復:
你的查詢看起來還不錯,但我建議不要更新多余的行:
UPDATE [Audit].[mfw].[Audit]
SET AuditObjectType = (case AuditObjectType
when '30' then '200'
when '31' then '201'
when '32' then '202'
when '33' then '203'
else AuditObjectType
end)
WHERE Module = '23' AND AuditObjectType IN ('30', '31'/span>, '32'/span>, '33'/span>)。)
這就是說,我發現VALUES()可以更簡潔,更少出錯:
UPDATE [Audit].[mfw].[Audit]
SET AuditObjectType = v.AuditObjectType
FROM (VALUES ('23'/span>, '30'/span>, '200'/span>),
('23'/span>, '31'/span>, '201'/span>)。
('23', '32', '202') 。
('23'/span>, '33'/span>, '203'/span>)
) v(Module, AuditObjectType, AuditObjectType)
WHERE Audit.Module = v.Module AND Audit.AuditObjectType = v.AuditObjectType
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/307261.html
標籤:
上一篇:當我在我的消費者中注入任何型別的DI時,它在我的啟動(MassTransit)中回傳這個錯誤。
下一篇:尋找重復值的出現
