Foxtable(狐表)用户栏目专家坐堂 → sql加isnull判断查询为何出错?


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

主题:sql加isnull判断查询为何出错?

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


加好友 发短信
等级:八尾狐 帖子:1925 积分:17344 威望:0 精华:0 注册:2014/7/29 19:09:00
sql加isnull判断查询为何出错?  发帖心情 Post By:2022/11/3 23:24:00 [只看该作者]

SELECT TOP 500
    ISNULL(事业部名称, '空值') AS 事业部名称,
    ISNULL(客户, '空值') AS 客户
FROM
(
    SELECT *,
        ROW_NUMBER() OVER (ORDER BY 事业部名称,
                               客户
                          ) AS RowNum
    FROM
    (
        SELECT DISTINCT 事业部名称,
            客户
        FROM uv_dd_NotOutOLD10
        WHERE 交货日期 >= '2022-11-01'
    ) x
) y
WHERE RowNum > 0

上面的语句红色那部分会提示错误,消息 245,级别 16,状态 1,第 2 行
在将 varchar 值 '空值' 转换成数据类型 int 时失败。

第一句不用isnull判断就不会出错,会是什么原因呢?

谢谢!


 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109501 积分:557173 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/11/4 8:53:00 [只看该作者]

如果列是整数类型,不能使用字符的:ISNULL(事业部名称, -1) AS 事业部名称,

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


加好友 发短信
等级:八尾狐 帖子:1925 积分:17344 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2022/11/4 9:39:00 [只看该作者]

谢谢,原来是定义值为null的列名时也必须要定义数据类型
要用 CAST(NULL AS NVARCHAR(16)) AS 事业部名称 ,不能直接用NUll as 事业部名称

 回到顶部