【发布时间】:2021-10-15 08:26:38
【问题描述】:
对于数据库,我需要从不同表的操作中记录状态。
表 1
| ID | Action |
|---|---|
| 1 | Accept |
| 2 | Save |
| 3 | Withdraw |
| 4 | Accept |
表 2
| ID | State |
|---|---|
| 1 | |
| 2 | |
| 3 | |
| 4 |
结果
表2
| ID | State |
|---|---|
| 1 | Accepted |
| 2 | Draft |
| 3 | Withdrawn |
| 4 | Accepted |
我正在考虑使用 CASE WHEN 查询来解决这个问题:
Update table 2
set state = action
from (select
case when action == Accept then Accepted
when action == save then draft
when action == withdraw then withdrawn
end
from table 1
)
我想知道这是否是最好的方法,或者是否可以为此使用某种映射器。
【问题讨论】:
标签: sql sql-server case