Я использую ниже запрос в Ms Access. И это дает мне ошибку Syntax error in your query expression CASE WHEN not ...
. Не могли бы вы рассказать мне, что я делаю неправильно? В Sql Server 2008 R2 оператор case
работает правильно.case statement in MS Access query дать ошибку
SELECT TableApron.RadButtonNo, TableApron.ShortName, QueryForNot1.InspectionDate, QueryForNot1.Findings, QueryForNot1.Status, QueryForNot1.Initials, TableApron.DeptName, TableApron.Lost, TableApron.InServelDate, TableApron.RemovedDate, TableApron.PrivateUserName, TableApron.PrivateUserEmail, TableApron.ApronType, TableApron.Manufacturer
FROM TableApron LEFT JOIN QueryForNot1 ON TableApron.RadButtonNo=QueryForNot1.RadButtonNoI
WHERE (((TableApron.Lost)="N" Or (TableApron.Lost)=[@Lost]) And ((TableApron.InServelDate) Is Null Or (TableApron.InServelDate) Between CDATE([@From]) And CDATE([@To]) Or (TableApron.InServelDate)<CDATE([@To])) And ((TableApron.RemovedDate) Is Null Or (TableApron.RemovedDate) Between CDATE([@From]) And CDATE([@To]) Or (TableApron.RemovedDate)>CDATE([@To])))
ORDER BY
CASE
WHEN not TableApron.RadButtonNo like '%[^0-9]%' THEN CONVERT(int,TableApron.RadButtonNo)
WHEN TableApron.RadButtonNo like '[0-9]%' THEN CONVERT(int,SUBSTRING(TableApron.RadButtonNo,1,PATINDEX('%[A-Z]%',TableApron.RadButtonNo)-1))
END,
CASE
WHEN not TableApron.RadButtonNo like '%[^0-9]%' THEN NULL
WHEN TableApron.RadButtonNo like '[0-9]%' THEN SUBSTRING(TableApron.RadButtonNo,PATINDEX('%[A-Z]%',TableApron.RadButtonNo),9000)
ELSE TableApron.RadButtonNo
END;
CASE - T-SQL. Замените выражение IIf (условие, true, false). – Gustav