我有一个简单的表单,允许用户为他们的业务创建服务。他们还可以使用相同的表格为该服务附加协议。
示例:
隐藏了两个日期字段:
我的问题是,因为这是形式是“插入”而不更新在DealCreated_Date中合并条件的正确方法是什么?
例如:
INSERT INTO MyTable
(
ServiceTitle
,ServicePrice
,ServiceDescription
,ServiceCreated_Date
,ActivateDeal
,DealPrice
,DealCreated_Date
) VALUES
(
@ServiceTitle
,@ServicePrice
,@ServiceDescription
,GETDATE() // For ServiceCreated_Date
,@ActivateDeal
,@DealPrice
,???????
所以基本上,我想在DealCreated_Date字段中使用GETDATE(),但仅限于ActivateDeal为TRUE(1)
有一种简单的方法吗?
感谢您的帮助。
答案 0 :(得分:2)
我想你只想使用CASE声明:
INSERT INTO MyTable
(
ServiceTitle
,ServicePrice
,ServiceDescription
,ServiceCreated_Date
,ActivateDeal
,DealPrice
,DealCreated_Date
) VALUES
(
@ServiceTitle
,@ServicePrice
,@ServiceDescription
,GETDATE() // For ServiceCreated_Date
,@ActivateDeal
,@DealPrice
,CASE WHEN @ActivateDeal THEN getDate() END
)
这应该插入当前日期或NULL,具体取决于@ActivateDeal的值。根据其数据类型,您可能需要使用CASE WHEN @ActivateDeal = 1。