Du kan bruge ISNULL flere gange i den samme SQL-sætning til forskellige kolonner, men du skal skrive det separat for hver kolonne:
SELECT
ISNULL(ProductName, 'No Data') AS ProductName,
ISNULL(CAST(UnitPrice AS NVARCHAR), 'No Data') AS UnitPrice,
ISNULL(CAST(UnitsInStock AS NVARCHAR), 'No Data') AS UnitsInStock,
ISNULL(CAST(UnitsOnOrder AS NVARCHAR), 'No Data') AS UnitsOnOrder
FROM tbl
Hvis du bygger en dynamisk SQL-forespørgsel, kan du teoretisk samle en liste over kolonner i tabellen og generere en forespørgsel med ISNULL på hver enkelt. For eksempel:
DECLARE @SQL nvarchar(max)
SET @SQL = 'SELECT '
SELECT @SQL = @SQL + 'ISNULL(CAST([' + sc.name + '] AS NVARCHAR), ''No Data'') AS [' + sc.name + '],'
FROM sys.objects so
INNER JOIN sys.columns sc ON sc.object_id = so.object_id
WHERE so.name = 'tbl'
-- Remove the trailing comma
SELECT @SQL = LEFT(@SQL, LEN(@SQL) - 1) + ' FROM tbl'
EXEC sp_sqlexec @SQL
Denne kode har problemer, når du konverterer nogle kolonnetyper såsom tidsstempler til en nvarchar, men den illustrerer teknikken.
Bemærk, at hvis du havde en anden kolonne, der skulle returneres, hvis en værdi er null, kan du bruge COALESCE udtryk som dette:
SELECT COALESCE(ProductName, P_Id) AS Product...