I have a table with the following columns:
EntityId, EntityName, EntityProfile, ……………..
I want to select the Id and Name and true/false column based on the value of entity profile,
for example a returned result set like below, would mean that entities 1&2 have profiles while 3 not.
1 Name1 True
2 Name2 True
3 Name3 False
etc.....
I know I can do it using a function that return true/false based on the profile value like this:
SELECT EntityId, EntityName, dbo.EntityHasProfile(EntityId) AS HasProfile FROM Entities
but I’m returning a large no. of records and with this function call for each record, the query is very slow, and when I remove the function call the query execution time drops significantly.
So is there another way of doing this?
Thanks
Use a
CASE. I would post the specific code, but need more information than is supplied in the post – such as the data type of EntityProfile and what is usually stored in it. Something like:Edit – the entire SELECT statement, as per the info in the comments:
No LEFT JOIN necessary in this case…