我在此CASE声明中有一个问题。希望它是一个语法问题。
CASE quot_status.open_auth_date IS NULL
WHEN 1 THEN 'Pending'
WHEN 2 THEN 'Completed'
ELSE IF WHEN tender.open_authorization > quot_status.open_auth_date THEN 'Due'
END
AS `Open Auth Status`
在上面的tender.open_authorization和quot_status.open_auth_date就像比较日期。
让我解释一下这个场景。我的mysql数据库中有两个日期字段。第一个字段称为“quot_status.open_auth_date”,第二个字段为“tender.open_authorization”。我需要在这里查看3个条件。第一个条件是我需要检查'tender.open_authorization> quot_status.open_auth_date'然后打开身份验证状态应显示结果'到期'。如果它的到期案件声明必须退出或结束。第二个条件是我应该检查quot_status.open_auth_date ='NULL',如果它的NULL Open Auth Status应该将结果显示为'Pending',否则它将显示'Completed'。
答案 0 :(得分:0)
您的格式有一些问题, 您可以按照以下语法进行查询......
CASE
WHEN (ISNULL(quot_status.open_auth_date) && < status=1 > ) THEN 'Pending'
WHEN (ISNULL(quot_status.open_auth_date) && < status=2 > ) THEN 'Completed'
WHEN (tender.open_authorization > quot_status.open_auth_date ) THEN 'Due'
ELSE '< Unknown >'
END AS `Open Auth Status`
答案 1 :(得分:0)
CASE quot_status.open_auth_date
WHEN 1 THEN 'Pending'
WHEN 2 THEN 'Completed'
WHEN tender.open_authorization > quot_status.open_auth_date THEN 'Due'
END AS `Open Auth Status`
尝试此代码