以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- sql加isnull判断查询为何出错? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=183410) |
-- 作者:happyft -- 发布时间:2022/11/3 23:24:00 -- sql加isnull判断查询为何出错? 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判断就不会出错,会是什么原因呢? 谢谢! |
-- 作者:有点蓝 -- 发布时间:2022/11/4 8:53:00 -- 如果列是整数类型,不能使用字符的:ISNULL(事业部名称, -1) AS 事业部名称, |
-- 作者:HappyFt -- 发布时间:2022/11/4 9:39:00 -- 谢谢,原来是定义值为null的列名时也必须要定义数据类型 要用 CAST(NULL AS NVARCHAR(16)) AS 事业部名称 ,不能直接用NUll as 事业部名称
|