【发布时间】:2010-03-07 16:04:59
【问题描述】:
我有一个包含以下列的表格: EntityId, EntityName, EntityProfile, ....................
我想根据实体配置文件的值选择 Id 和 Name 以及 true/false 列, 例如,返回的结果集如下所示,表示实体 1 和 2 有配置文件,而 3 没有。
1 Name1 True
2 Name2 True
3 Name3 False
etc.....
我知道我可以使用一个基于配置文件值返回真/假的函数来做到这一点,如下所示: SELECT EntityId, EntityName, dbo.EntityHasProfile(EntityId) AS HasProfile FROM Entities
但我要返回一个很大的号码。记录的数量和对每条记录的此函数调用,查询非常慢,当我删除函数调用时,查询执行时间显着下降。
那么还有其他方法吗? 谢谢
【问题讨论】:
-
您可能可以
join,但您没有告诉我们EntityHasProfile是如何计算的。你还有另一张桌子吗? -
对不起,我忘了提,实体配置文件是 nvarchar(max)
-
以及如何使用EntityProfile来判断是否有EntityHasProfile?如果它为空...?
-
是的,如果为空,我想得到假,否则为真
标签: sql-server