select CASE
WHEN ComExgRateDetailLog.NotificationMinute = '*'
THEN
1
ELSE
IF(FIND_IN_SET(
CAST(
DATE_FORMAT(
DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:00'),
'%i') AS SIGNED),
ComExgRateDetailLog.NotificationMinute) > 0,
1,
0)
END
From ComExgRateDetailLog
I need the same result in oracle. What is the alternative option of find_in set in oracle?
Here ComExgRateDetailLog.NotificationMinute holds value like '0,15,30,45' So query should be like
select CASE
WHEN ComExgRateDetailLog.NotificationMinute = '*'
THEN
1
ELSE
IF(FIND_IN_SET(
CAST(
DATE_FORMAT(
DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:00'),
'%i') AS SIGNED),
'0,15,20,45') > 0,
1,
0)
END
From ComExgRateDetailLog
In order to accomplish this in oracle, you have to use the INSTR function, but INSTR is not accurately the same as FIND_IN_SET. INSTR holds a comma, space, anything inside a string as a character.
You can go through about INSTR from here.