Using SQL Server 2005 how do I get the below statement or rather the output as i want it to be.
SELECT Id 'PatientId',
ISNULL(ParentId,'') 'ParentId'
FROM Patients
ParenId is a uniqueidentifier that allows NULL, but seems that query optimizer tries to also convert '' back to uniqueidentifier for the rows where ParentId = NULL.As the title says that’s the exact error info the query runner throws at my face!!
- How do i get the server to return empty string for
ParentId = NULL
ISNULLalways tries to return a result that has the same data type as the type of its first argument. So, if you want the result to be a string (varchar), you’d best make sure that’s the type of the first argument.COALESCEis usually a better function to use thanISNULL, since it considers all argument data types and applies appropriate precedence rules to determine the final resulting data type. Unfortunately, in this case,uniqueidentifierhas higher precedence thanvarchar, so that doesn’t help.(It’s also generally preferred because it extends to more than two arguments)