CASE in SQL Server
a small examle to explain what we do with case in SQL
below is a condition where i need to show cratefrom & crate_to in such a way
so that they will look like this
1-15 (means cratefrom - crate_to)
but i also need to assure my self that if any where the cratefrom & crate_to are same then just show sigle one for eg cratefrom
below is code how you can do this!
SELECT [pck_id] ,[pi_no]
,[cal_id],[rue_id] ,[rue_no] ,[p_date] ,[product_type]
,[product_name],[size] ,[qty],[crateFrom],[crate_to],
case when [crateFrom]=[crate_to] then [crate_to]
else
ltrim(rtrim([crateFrom]))+'-'+ltrim(rtrim([crate_to]))
end as crate
FROM [dbo].[tbl_packinglist] GO
,[product_name],[size] ,[qty],[crateFrom],[crate_to],
case when [crateFrom]=[crate_to] then [crate_to]
else
ltrim(rtrim([crateFrom]))+'-'+ltrim(rtrim([crate_to]))
end as crate
FROM [dbo].[tbl_packinglist] GO
if you didnt understand the ltrim & rtrim,its nothing but just triming the values
like if the execute query gives you this
1 -12
then
ltrim & rtrim(lefttrim & rightrtrim(by side))
will give you this
1-12
Basic work of TRIM() is to remove trailing and heading spaces.In sqlserver there this function is divided in two parts LTRIM(){Removes Heading spaces} and RTRIM(){Removes Trailing Spaces}
ReplyDelete