I would rely on two things:
- Documentation
- Trying to run the statement in SSMS.
This way you can see what is the expected format and functionality on each statement and have a try with it
What comes to documentation, have a look at
-
CASE (Transact-SQL) - SQL Server | Microsoft Docs[
^]
-
+ (String Concatenation) (Transact-SQL) - SQL Server | Microsoft Docs[
^]
or
CONCAT (Transact-SQL) - SQL Server | Microsoft Docs[
^]
-
ROUND (Transact-SQL) - SQL Server | Microsoft Docs[
^]
-
CAST and CONVERT (Transact-SQL) - SQL Server | Microsoft Docs[
^]
So based on those your query should be correct what comes to the CASE part, something like
SELECT
...
CASE
WHEN [group_code]='NA' THEN 'Not Discountable'
ELSE 'Discountable - ' + [GROUP_DESCRIPTION]
END AS [SOC_DISCOUNT_GROUP Desc],
'Active (A)' AS [STATUS Desc],
CASE
WHEN [data_bucket_mb] IS NULL THEN [DATA_INCLUDED]
WHEN [data_bucket_mb] = 9999999 THEN 'Unlimited'
WHEN [data_bucket_mb] = 0 THEN '0'
WHEN [data_bucket_mb] < 1024 THEN CAST([DATA_BUCKET_MB] AS varchar(100)) + "MB"
ELSE CAST(ROUND( ROUND([DATA_BUCKET_MB]/1024,2)) AS varchar(100)
END
...