Foxtable(狐表)用户栏目专家坐堂 → 目录树列如果有空值就显示不出来sql语句如何写?


  共有1796人关注过本帖树形打印复制链接

主题:目录树列如果有空值就显示不出来sql语句如何写?

帅哥哟,离线,有人找我吗?
happyft
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1897 积分:16823 威望:0 精华:0 注册:2014/7/29 19:09:00
目录树列如果有空值就显示不出来sql语句如何写?  发帖心情 Post By:2017/10/8 19:11:00 [只看该作者]

目录树列的值有时会有上万,为了方便显示,用了下面的sql查询语句分页生成表再建立目录树
SE LECT TOP 200 * FROM
(
    SE LECT *,ROW_NUMBER() OVER (ORDER BY 客户, 订单编号) AS RowNum FROM 
    (SE LECT DISTINCT isnull(客户,'空'), isnull(订单编号,'空') FROM 订单) AS a
) b 

上面的语句的红色部份是想实现如果目录树列中的任何一列为空时就用空字符代替,要怎么样写才正确? 还有这样会影响效率吗?
有没有效率更高的写法?

谢谢!

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/10/8 19:24:00 [只看该作者]

写在最外面即可,效率不会影响太多。

 

SELECT TOP 200 isnull(客户,'空') as 客户, isnull(订单编号,'空') as 订单编号 FROM


 回到顶部
帅哥哟,离线,有人找我吗?
HappyFt
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1897 积分:16823 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2017/10/18 20:14:00 [只看该作者]

请教下下面的语句如果按2楼那样加上isnull判断时有日期列的形式要如何写

Se lect top 200 * from (Se lect *,ROW_NUMBER() OVER(ORDER BY 供应商,采购单号, DESC, DESC, DESC) As RowNum from (Se lect distinct 供应商,采购单号,Year(采购日期) As ,Month(采购日期) As ,Day(采购日期) As From uv_cg120 where 1 = 1) x ) y where RowNum > 0


上面*处不考虑空值的写法没问题,如果各列都要加上isnull的判断怎么写?

Se lect top 200 isnull(供应商,'空') as 供应商,isnull(采购单号,'空') as 采购单号,isnull(Year(采购日期),'空')) as 年,isnull(Month(采购日期),'空') As ,isnull(Day(采购日期,'空') As 日 

 from (Se lect *,ROW_NUMBER() OVER(ORDER BY 供应商,采购单号, DESC, DESC, DESC) As RowNum from (Se lect distinct 供应商,采购单号,Year(采购日期) As ,Month(采购日期) As ,Day(采购日期) As From uv_cg120 where 1 = 1) x ) y where RowNum > 0


上面的红色部份总是出错,应该怎么写?


谢谢!


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/10/18 20:24:00 [只看该作者]

最外层,直接引用年、月、日即可。

 

IsNull(年, '空') as 年, IsNull(月, '空') as 月


 回到顶部