将 varchar 值 'ok' 转换为数据类型为 int 的列时发生语法错误

ysdsj2009 2010-04-14 02:17:47
select '数'=
case
when sum(t1)-sum(t3)+sum(t2)=0 then 'ok'
ELSE sum(t1)-sum(t3)+sum(t2)
END
服务器: 消息 245,级别 16,状态 1,行 1
将 varchar 值 'ok' 转换为数据类型为 int 的列时发生语法错误。
警告: 聚合或其它 SET 操作消除了空值。

应该怎么解决呢?
...全文
71 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
--小F-- 2010-04-14
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 ysdsj2009 的回复:]
时间太短不能结贴

有关于数据转换的资料吗?
[/Quote]

想要什么数据转换的资料??
查一下cast和convert的用法
ysdsj2009 2010-04-14
  • 打赏
  • 举报
回复
时间太短不能结贴

有关于数据转换的资料吗?
htl258_Tony 2010-04-14
  • 打赏
  • 举报
回复
select '数'=
case
when sum(t1)-sum(t3)+sum(t2)=0 then 'ok'
ELSE cast(sum(t1)-sum(t3)+sum(t2) as varchar(100))
END
Mr_Nice 2010-04-14
  • 打赏
  • 举报
回复

ELSE (sum(t1)-sum(t3)+sum(t2))

这里也得是字符类型的哦。
sgtzzc 2010-04-14
  • 打赏
  • 举报
回复
select '数'=
case
when sum(t1)-sum(t3)+sum(t2)=0 then 'ok'
ELSE cast(sum(t1)-sum(t3)+sum(t2) as varchar)
END
SQL77 2010-04-14
  • 打赏
  • 举报
回复
select '数'=
case
when sum(t1)-sum(t3)+sum(t2)=0 then 'ok'
ELSE LTRIM(sum(t1)-sum(t3)+sum(t2))
END

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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