Perché lo fa non lavoro. Quando QTY è una colonna numerica, quando la si visualizza o la si converte implicitamente in varchar (LIKE lo fa implicitamente), TUTTI i numeri verranno espressi allo stesso numero di cifre decimali.
considerare questa istruzione SQL
with TBL(qty) as (select 1.1 union all select 3)
SELECT li.QTY FROM TBL LI WHERE li.QTY like '%.%'
uscita
1.1
3.0 << this contains "." even if it does not need to
Fusioni in un bigint e lascerà cadere i decimali, quindi confrontare di nuovo.
SELECT li.QTY FROM TBL LI
WHERE li.QTY <> CAST(qty as bigint)
Se è necessario utilizzare LIKE (o solo per l'esposizione ..)
SELECT li.QTY, CONVERT(varchar, li.qty)
FROM TBL LI
WHERE li.QTY LIKE '%.%[^0]%'
Siamo spiacenti, ho lanciato a VARCHAR ho lasciato fuori dalla exapmle – djshortbus
Qui è una questione connessa ... Basta applicare queste pratiche con la '<>' per la colonna: http://stackoverflow.com/questions/44046/truncate-not-round-decimal-places-in-sql-server – Matthew