Tsql 非数字数据的SQL WHERE条件中的情况
我有这个查询,但我需要第二个Tsql 非数字数据的SQL WHERE条件中的情况,tsql,conditional,case-when,Tsql,Conditional,Case When,我有这个查询,但我需要第二个条件,其中条件依赖于集合中的值: SELECT TABLE1.*, TABLE2.* FROM TABLE1, TABLE2 WHERE TABLE1.ID = TABLE2.ID AND TABLE1.TIMESTAMP > DATEADD(D,-5,GETDATE()) 所以我打算做一些这样的事情,但它不起作用(因为“>”): 我环顾四周,但我只能找到意图是操纵数字信息的例子。有人有什么想法吗?改变这一点: AND TABLE1.TIMESTAMP >
条件,其中
条件依赖于集合中的值:
SELECT TABLE1.*, TABLE2.*
FROM TABLE1, TABLE2
WHERE TABLE1.ID = TABLE2.ID
AND TABLE1.TIMESTAMP > DATEADD(D,-5,GETDATE())
所以我打算做一些这样的事情,但它不起作用(因为“>”):
我环顾四周,但我只能找到意图是操纵数字信息的例子。有人有什么想法吗?改变这一点:
AND TABLE1.TIMESTAMP > DATEADD(D,-5,GETDATE())
致:
AND(TABLE1.TRIGGER'TRUE'或(TABLE1.TRIGGER='TRUE'和TABLE1.TIMESTAMP>DATEADD(D,-5,GETDATE())
如果TABLE1.TRIGGER
不等于true
,则为“and true”;如果等于true
,则将执行额外的条件检查(TABLE1.TIMESTAMP>…
)。更改此项:
AND TABLE1.TIMESTAMP > DATEADD(D,-5,GETDATE())
致:
AND(TABLE1.TRIGGER'TRUE'或(TABLE1.TRIGGER='TRUE'和TABLE1.TIMESTAMP>DATEADD(D,-5,GETDATE())
如果
TABLE1.TRIGGER
不等于true
,它将是“and true”,或者如果它等于trueCASE
结果,它将执行额外的条件检查(TABLE1.TIMESTAMP>…
),因此您需要对其进行处理,例如,将其与另一个值进行比较:
SELECT TABLE1.*, TABLE2.*
FROM TABLE1, TABLE2
WHERE TABLE1.ID = TABLE2.ID AND
CASE
WHEN TABLE1.TRIGGER = 'TRUE' THEN 1
WHEN TABLE1.TIMESTAMP > DATEADD(D,-5,GETDATE()) THEN 1
ELSE 0
END = 1
CASE
生成一个值,因此您需要对其进行处理,例如,将其与另一个值进行比较:
SELECT TABLE1.*, TABLE2.*
FROM TABLE1, TABLE2
WHERE TABLE1.ID = TABLE2.ID AND
CASE
WHEN TABLE1.TRIGGER = 'TRUE' THEN 1
WHEN TABLE1.TIMESTAMP > DATEADD(D,-5,GETDATE()) THEN 1
ELSE 0
END = 1