Two things.
1. Santosh, Why are you trying to do this to your table? What is the purpose? If it is a report then handle it in the reporting tool.
2. Jason, the query you provided returns the exact same table minus one row. OR's are tricky. In this case, in all but one row, at least one field in the table satisfies the condition value <> 0 and therefore evaluates to "true" for the entire row to be returned.set nocount on
select * into dbo.myTable
from
(select
14 'iss_quantity' ,0 'received_qty', 0 'moved_qty' ,0 'alloc_qty'
union all select
0 , 0 , 0 , 0
union all select
0 , 0 , 13.7 , 0
union all select
0 , 0 , 0 , 13
union all select
14 , 0 , 0 , 0
union all select
14 , 0 , 0 , 0
union all select
0 , 40.9 , 0 , 0
union all select
14 , 0 , 0 , 0
union all select
0 , 0 , 13.8 , 0
union all select
0 , 27.6 , 0 , 0
union all select
0 , 0 , 13.8 , 0
union all select
0 , 0 , 13.7 , 0
union all select
0 , 0 , 13.8 , 0
union all select
0 , 41.4 , 0 , 0
union all select
0 , 0 , 13.9 , 0
union all select
0 , 0 , 0 , 13
union all select
14 , 0 , 0 , 0) x
go
SELECT iss_quantity,received_qty,moved_qty,alloc_qty FROM MyTable
WHERE iss_quantity <> 0 OR received_qty <> 0 OR moved_qty <> 0 OR alloc_qty <> 0
go
drop table dbo.mytable
set nocount off