sql - 如果另一列值为 false,则将列值设置为 null
问题描述
我正在使用 SQL Server Management Studio。我已经创建了一个数据类型为日期的表 [PatientsRecords]。在此表下,有一列 [DisChargedDate]。我刚刚添加了另一列 [IsDischarged],它的数据类型是位。我想做一些事情,以便每次插入 [PatientsRecords] 表时,如果 [IsDischarged] 值为 0(意味着患者还没有真正离开)。所以无论 [DisChargedDate] 的值是什么,它都会被设置为 null。
感谢你的帮助!
解决方案
我建议更改插入查询而不是使用触发器,因为它们可能会阻塞您的表,并且会减慢您的插入速度,而不会带来任何好处。
insert into dbo.PatientsRecords (DisChargedDate,IsDischarged)
select
IsDischarged
case when IsDischarged = 0 then null else DisChargedDate end as DisChargedDate
from YourSourceTable
如果您使用代码插入表中,则将上面的代码段包装到插入过程中,并从您的代码中调用它并传递必要的参数
推荐阅读
- c# - ASP.NET REST 服务路由
- docker - jenkins kubernetes 插件执行问题
- eclipse - 使用 Eclipse 时 Swagger 无法在 jhipster 中启动
- go - 无法将流量从“tun”接口转发到“lo”
- android - 向上滑动时隐藏 ActionBar,向下滑动时显示
- javascript - 一年有多少个星期
- android - InternalError - Axios 库 - 反应原生
- css - justify-self and position relative does not work correctly
- r - Create lines parallel to my `geom_smooth(method = lm)` line
- python - PyOpenGL 3.1.0 with Pygame