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个就会出错。
在网上也查了很多,都没办法解决,请问各位有什么好的方法,谢谢! 展开
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个就会出错。
在网上也查了很多,都没办法解决,请问各位有什么好的方法,谢谢! 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询