0

我有一个简单的表单,允许用户为其业务创建服务。他们还可以使用相同的表格将交易附加到该服务。

例子:

  • 服务名称
  • 服务价格
  • 服务说明
  • 激活交易
  • 成交价

有两个隐藏的日期字段:

  1. 服务创建日期
  2. DealCreated_Date

我的问题是,因为这是“插入”表单,而不是更新在 DealCreated_Date 上合并条件的正确方法是什么?

例如:

INSERT INTO MyTable
(
    ServiceTitle
   ,ServicePrice
   ,ServiceDescription
   ,ServiceCreated_Date
   ,ActivateDeal
   ,DealPrice
   ,DealCreated_Date
) VALUES
(
    @ServiceTitle
   ,@ServicePrice
   ,@ServiceDescription
   ,GETDATE() // For ServiceCreated_Date
   ,@ActivateDeal
   ,@DealPrice
   ,???????

所以基本上,我想将 GETDATE() 用于 DealCreated_Date 字段,但仅当 ActivateDeal 为 TRUE (1)

是否有捷径可寻?

谢谢您的帮助。

4

1 回答 1

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
)

这应该根据@ActivateDeal 的值插入当前日期或NULL。根据其数据类型,您可能需要改用 CASE WHEN @ActivateDeal = 1。

SQL 小提琴演示

于 2013-02-24T23:45:30.957 回答