ms sql中cast as money的奇怪问题

selectc.ColumnName,cast(c.ColumnValueasmoney),b.TableIDfromCW_DATA_MONTHb,CW_DATA_COL... select c.ColumnName, cast(c.ColumnValue as money), b.TableID
from CW_DATA_MONTH b, CW_DATA_COLUMN c, CW_COLUMN d
where b.YearMonth = '201305'
and b.id = c.MonthID
and b.ConfirmStatus = 'Y'
and b.TableID = 13 and d.TableID = b.TableID
and d.ColumnName = c.ColumnName and d.IsMoney = 'Y'

消息 235,级别 16,状态 0,第 1 行
无法将 char 值转换为 money。该 char 值的语法有误。

奇怪的地方有:
1、通过isnumeric函数,所有ColumnValue列值返回都是1,而且通过人工查看,也均是数字格式,没有其它符号;
2、这是13个公司的数据,如果在后面加上“and b.CompanyID = 1”之类的条件,是没有错误的,从1到13都没有错误;
3、“and b.CompanyID in ( 1,2,3,4,5,6,8,9,10,11,12,13)”,去掉id为7的公司数据,没有错误,单独写“and b.CompanyID = 7”也没有错误,“and b.CompanyID in ( 1,2,3,4,7)”,如果有id为7的公司,再加上其它任意4个以下的公司数据,也没有错误,个数超过4个就会出错。
在网上也查了很多,都没办法解决,请问各位有什么好的方法,谢谢!
展开
 我来答
twvampire
2013-06-03 · TA获得超过3620个赞
知道大有可为答主
回答量:3029
采纳率:76%
帮助的人:3000万
展开全部
cast(isnull(c.ColumnValue,0) as money), 试试
更多追问追答
追问
数据没有空值,通过isnumeric函数,所有ColumnValue列值返回都是1
加上“and b.CompanyID 7"或者“and b.CompanyID = 7”都没有问题,但是没有这个条件就会报错。
追答
你有没有换成convert()试过?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式