OriginalGriff
ГМ...значения с плавающей запятой не "заканчиваются десятичной запятой" - это числовое значение, которое может содержать или не содержать десятичную точку, когда представлено пользователю в виде строки. В результате все они потенциально содержат "десятичную дробь": 100-это также 100.0, и 100.000, и 1.0E2 все одновременно.
А поскольку @value в вашем примере кода является FLOAT, попытка преобразовать его в int, а затем добавить строку просто приведет к ошибке, так как float попытается вернуть остальные данные обратно в число - а " % " - это не число!. Что еще хуже, LIKE не работает с числами, только со строками, поэтому он не будет работать, если вы в какой-то момент преобразуете его обратно в строку.
Если вы пытаетесь исключить значения xxx. 0 и xxx. 5, то это не сложно:
declare @value float = 1
select 'abc'
where (@value -CAST (@value AS INT) != 0) AND (@value -CAST (@value AS INT) !=.5)