SELECT bm.WinningNumber,bd.BetOnNumber,"WinLossAmount" =
CASE
WHEN 2 in (2,1) THEN ('WIN')
END
FROM BettingMaster bm inner join BettingDetail bd on bm.GameID = bd.GameID
where bd.GameID = 1
Это работает как Очарование, и я получаю «WIN» в WinLossAmount. Теперь у меня есть значение 2 в столбце WinningNumber (varchar) и значение 2,1 в столбце BetOnNumber (varchar). Я повторил заявление какпроблема с пунктом IN в sql
SELECT bm.WinningNumber,bd.BetOnNumber,"WinLossAmount" =
CASE
WHEN bm.WinningNumber in (bd.BetOnNumber) THEN ('WIN')
END
FROM BettingMaster bm inner join BettingDetail bd on bm.GameID = bd.GameID
where bd.GameID = 1
Это не работает. Разве это невозможно? Любая помощь??
bm.WinningNumber in (bd.BetOnNumber) эквивалентно (пример) с 2 в ('2,1'), которое всегда ложно – wxyz
попробуйте t0 напишите '2' в ('2,1'), вы не будете получить какой-либо результат –
Небольшая заметка - если вы обнаружите, что значения, разделенные запятыми, помечены в столбце таблицы базы данных, ваш дизайн, вероятно, неверен. Вероятно, это должно быть в отдельной таблице BetOnNumbers, связанной с вашим идентификатором таблицы BettingMaster (это упростит этот запрос и, вероятно, сэкономит ваше время в долгосрочной перспективе). – Paddy