dbo.GetHeadPy(单位名称) like '%cd%' or 单位名称 like '%cd%' 这句可以改成 charindex('cd',dbo.GetHeadPy(单位名称)+','+单位名称)>0 -- 其中的逗号是防止“dbo.GetHeadPy(单位名称)”的最后一个字符和“单位名称”的第一字符组合起来刚好等于cd
SELECT top 10 单位名称,单位地址 from 报告单 inner join 单位名称 on 报告单.scdwmcid=单位名称.dwmcid where bgdid in (select top 10 max(bgdid) as maxbgdid from 报告单 inner join 单位名称 on 报告单.scdwmcid=单位名称.dwmcid where dbo.GetHeadPy(单位名称) like '%cd%' or 单位名称 like '%cd%' --本处可改为union all group by 单位名称) order by bgdid desc%cd%没法优化,如果cd是某个重要标识的话,那只能说明表设计不合理。另外在优化前建议先只取主要信息,待优化完毕后再连接其他表查询。
这句可以改成
charindex('cd',dbo.GetHeadPy(单位名称)+','+单位名称)>0 -- 其中的逗号是防止“dbo.GetHeadPy(单位名称)”的最后一个字符和“单位名称”的第一字符组合起来刚好等于cd
SELECT top 10 单位名称,单位地址
from 报告单
inner join 单位名称
on 报告单.scdwmcid=单位名称.dwmcid
where
bgdid in (select top 10 max(bgdid) as maxbgdid
from 报告单
inner join 单位名称 on 报告单.scdwmcid=单位名称.dwmcid
where dbo.GetHeadPy(单位名称) like '%cd%'
or 单位名称 like '%cd%' --本处可改为union all
group by 单位名称)
order by bgdid desc%cd%没法优化,如果cd是某个重要标识的话,那只能说明表设计不合理。另外在优化前建议先只取主要信息,待优化完毕后再连接其他表查询。