求大神优化这段sql

yinmian9653 2017-09-15 09:10:51
select * from T_Depment where IsNull(Dep_Flag,''0'')=''0'' and ((ParentDepID is null) or (ParentDepID='''')) and (IsNull(IsEnd,''0'')=''0'') order by IsNull(IsEnd,''0''),DepCode
...全文
161 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
顺势而为1 2017-09-15
  • 打赏
  • 举报
回复
楼主最好在保存数据时就将null保存成空格或0, 这样查询的时候就不用写那么多 isnull 的判断了.
繁花尽流年 2017-09-15
  • 打赏
  • 举报
回复
看起来没啥问题,你要优化什么
听雨停了 2017-09-15
  • 打赏
  • 举报
回复

SELECT *
FROM   T_Depment
WHERE  ISNULL(Dep_Flag, ''0'') = ''0''
       AND ISNULL(ParentDepID,'''')=''''
       AND ISNULL(IsEnd, ''0'') = ''0''
ORDER BY
       ISNULL(IsEnd, ''0''),
       DepCode
你这个是mysql吧,可以把你上面的 ((ParentDepID is null) or (ParentDepID='''')) 改成ISNULL(ParentDepID,'''')=''''。可能会好点吧
繁花尽流年 2017-09-15
  • 打赏
  • 举报
回复
引用 3 楼 appetizing_fish1 的回复:
楼主最好在保存数据时就将null保存成空格或0, 这样查询的时候就不用写那么多 isnull 的判断了.
这个并不好,很多时候NULL含义还是和0是不一样的

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧