¿Por qué no lo hace trabajo. Cuando QTY es una columna numérica, cuando la visualiza o se convierte implícitamente a varchar (LIKE lo hace implícitamente), TODOS los números se convertirán al mismo número de decimales.
considerar esta sentencia SQL
with TBL(qty) as (select 1.1 union all select 3)
SELECT li.QTY FROM TBL LI WHERE li.QTY like '%.%'
salida
1.1
3.0 << this contains "." even if it does not need to
moldeada a un bigint y se eliminarán cualquier decimales, luego se compara de nuevo.
SELECT li.QTY FROM TBL LI
WHERE li.QTY <> CAST(qty as bigint)
Si tiene que usar LIKE (o sólo para mostrar ..)
SELECT li.QTY, CONVERT(varchar, li.qty)
FROM TBL LI
WHERE li.QTY LIKE '%.%[^0]%'
Lo sentimos, echo a varchar me dejó fuera de la exapmle – djshortbus
Aquí es una pregunta relacionada ... Basta con aplicar estas prácticas con el '<>' para su columna: http://stackoverflow.com/questions/44046/truncate-not-round-decimal-places-in-sql-server – Matthew