我在 MySql 上有一个带有卡车的数据库。我需要按此条件返回每行的特定值:
对于我的价值观:
示例:
注册 | 已添加到流通中 | 已删除 | 删除日期 |
---|---|---|---|
12345 | 2023年3月12日 | 0 | 空 |
45678 | 1999年2月14日 | 1 | 2023年10月17日 |
91011 | 2000年11月24日 | 0 | 空 |
我正在寻找这样的东西:
报名 | R_ES_V |
---|---|
12345 | NV |
45678 | R |
91011 | ES |
我不知道怎么做这个。这只是查询的一部分,其余部分非常简单,这就是问题所在
CASE WHEN
语句的理想用例。SET @new_date = DATE_SUB(NOW(), INTERVAL 3 YEAR);
'?'
。修改此查询以满足您的要求(如果存在)。SET @new_date = DATE_SUB(NOW(), INTERVAL 3 YEAR);
SET @old_date = DATE_SUB(NOW(), INTERVAL 3 YEAR);
SELECT
registration,
CASE
WHEN removed = 1 AND date_removed >= @old_date THEN 'R'
WHEN removed = 1 AND date_removed < @old_date THEN 'ES'
WHEN removed = 0 AND added_in_circulation >= @new_date THEN 'NV'
ELSE '?'
END as 'R_ES_NV'
FROM mytable