I have the following query, simplified for this question:
x
SELECT convert(bit, Substring(Max(convert(CHAR(8), tt.transaction_dt, 112) + convert(CHAR(1), tt.trans_live)), 9, 1)) AS is_live
FROM transaction_t tt
The query is designed to determine if a particular merchant has a “live” status depending on the “trans_live” value of the merchant’s LATEST transaction record.
This returns a “1” or “0”. However, I need a “yes/no” formatted column value.
NOTE: The section of the query as follows:
Max(convert(CHAR(8), tt.transaction_dt, 112) + convert(CHAR(1), trans_live))
returns a result in the following format:
202006271
Following is the relevant table structure:
transaction_t
id transaction_dt trans_live merchant_id
-----------------------------------------------------
1 2020-04-02 0 4
2 2020-04-02 1 4
3 2020-04-03 1 4
4 2020-04-04 0 4
4 2020-06-27 1 4
Advertisement
Answer
Please use case statement like below,
SELECT CASE (convert(bit, Substring(Max(convert(CHAR(8), tt.transaction_dt, 112) + convert(CHAR(1), tt.trans_live)), 9, 1)))
WHEN '0' THEN 'no'
WHEN '1' THEN 'yes'
END AS is_live
FROM transaction_t tt
Syntax may be wrong but this would help