x
create table #Temp
(
id int,
Volume decimal(18,3)
)
insert into #Temp(id,Volume)values(1,10)
insert into #Temp(id,Volume)values(2,10.2)
id Volume
-----------------
1 10.000
2 10.200
Declare @Type as int
set @Type=1
select Id,Convert(varchar(10),CASE WHEN @Type=1 THEN CAST(Volume AS INT)
ELSE Volume END) AS Quantity from #Temp
It is showing a result like this
id Volume
-----------------
1 10.000
2 10.000
But I want result like this when type is 1 then result should be in integer format:
id Volume
-----------------
1 10
2 10
on else condition (@Type rather than 1) I want result like this
id Volume
-----------------
1 10.000
2 10.200
I have tried this query
select Id,Convert(varchar(10),CASE WHEN @Type=1 THEN CAST(Volume AS INT)
ELSE Volume END) AS Quantity from #Temp
Advertisement
Answer
This will work for you.
select Id, (CASE WHEN @Type=1 THEN convert(varchar(10),convert(int,volume))
ELSE convert(varchar(10),Volume) END) AS Quantity from #Temp
When @type is 1, the result will be 10 for both values. Otherwise it will be exact value in the table.