我有一个如下的 SQL 查询:我的要求是如果 Development env 是 DEV,那么 where 子句中的条件应该是 Date<Getdate-500 否则条件应该是 Date<Getdate-100。在这两种情况下,所有其他条件都相同。我们应该怎么做。谢谢
Date<Getdate-500
Date<Getdate-100
INSERT INTO @TableA (ID) SELECT DISTINCT(ID) FROM EMP WHERE (Act_flag = 1 AND Date < GETDATE() - 100) OR Act_flag = 0
您可以创建一个单独的表,比如 ENVIRONMENT 表,来存储它是什么环境。
在 DEV 中,表格将如下所示 -
Key Value EnvName DEV
在 PROD 中,表格将如下所示 -
Key Value EnvName PROD
然后,您可以读取此表并将键 ‘EnvName’ 的值存储在一个局部变量中,例如 envName,并使用它,如下所示 -
INSERT INTO @TableA (ID) SELECT DISTINCT ID FROM EMP WHERE ((EnvName = 'DEV' AND ((Act_flag = 1 AND Date < GETDATE() - 500) OR Act_flag = 0)) OR (EnvName <> 'DEV' AND ((Act_flag = 1 AND Date < GETDATE() - 100) OR Act_flag = 0)))