Tôi đang gặp sự cố khi cố tìm ra giải pháp gọn gàng nhất cho vấn đề sau.SQL - TRẢ LỜI TRƯỜNG HỢP - WHEN tuyên bố VÀ tuyên bố
Tôi có bảng Mua hàng có cột Nhà nước, theo đó 1 được ủy quyền, 2 được hoàn thành và cũng là một số mục khác.
Tôi cũng có bảng Bán lẻ có bảng RetailerProcessType, trong đó 1 là một bước và 2 là hai bước.
Bây giờ nhìn thấy các truy vấn dưới đây ...
CASE purc.State
WHEN 1 THEN '"AUTHORISED"'
WHEN 2 THEN '"AUTHORISED"'
WHEN 4 THEN '"AUTHORISED"'
ELSE '"DECLINED"'
END AS Autorised_Decline_Status,
Những gì tôi cần làm là như sau:
KHI NHÀ NƯỚC = 2 VÀ RetailerProcessType = 1 THEN ' "ỦY QUYỀN"'
WHEN STATE = 1 AND RetailerProcessType = 2 THEN '"PENDING"'
WHEN STATE = 2 AND RetailerProcessType = 2 THEN '"AUTHORIZED"'
ELSE '"DECLINED"'
Cách duy nhất tôi có thể thấy là làm một câu lệnh IF lớn xung quanh truy vấn, một cho nhà bán lẻ một bước và một cho hai bước như sự hiểu biết của tôi một mệnh đề WHEN không thể có 'AND' trong nó.
Tuy nhiên, điều này dường như có vẻ ghê tởm và kéo dài, ai cũng có ý tưởng nào khác?
Steven