I\'m writing a T-SQL report that shows the number of accounts that are in different statuses for different customers. The report results in something like:
C
You can use COALESCE or ISNULL. The former is standard and returns the first NOT NULL argument (or NULL if all arguments are NULL)
SELECT COALESCE(micv.value,'Pending') as value
ISNULL is restricted to only 2 arguments but is more efficient in SQL Server if the first value to be tested is expensive to evaluate (e.g. a subquery).
One potential "gotcha" with ISNULL to be aware of is that it returns the datatype of the first parameter so if the string to be substituted is longer than the column datatype would allow you will need a cast.
E.g.
CREATE TABLE T(C VARCHAR(3) NULL);
INSERT T VALUES (NULL);
SELECT ISNULL(C,'Unknown')
FROM T
Would return Unk
But ISNULL(CAST(C as VARCHAR(7)),'Unknown') or COALESCE would both work as desired.
you can also use ISNULL('value', 'replacewithvalue')
SELECT
sr.sales_region_name AS SalesRegion
, ISNULL(micv.value,'Pending')
, COUNT(sr.sales_region_name)
FROM prospect p
--(...)
Go check ISNULL for further info.