前题:
有一个数据表(MasterSingle)中的(Salesodd)字段,类型为nvarchar(50).执行以下语句发生错误--最大单号为 091216000003
select CONVERT(int,RIGHT(ltrim(rtrim(MAX(Salesodd))),6)) from MasterSingle
/*
服务器: 消息 245,级别 16,状态 1,行 1
将 nvarchar 值 '0003
' 转换为数据类型为 int 的列时发生语法错误。*/
请问如何解决??
有一个数据表(MasterSingle)中的(Salesodd)字段,类型为nvarchar(50).执行以下语句发生错误--最大单号为 091216000003
select CONVERT(int,RIGHT(ltrim(rtrim(MAX(Salesodd))),6)) from MasterSingle
/*
服务器: 消息 245,级别 16,状态 1,行 1
将 nvarchar 值 '0003
' 转换为数据类型为 int 的列时发生语法错误。*/
请问如何解决??
'?有CHAR(10)或CHAR(13)
select CONVERT(int,RIGHT(1000001+ltrim(rtrim(MAX(Salesodd))),6)) from MasterSingle
服务器: 消息 248,级别 16,状态 1,行 1
nvarchar 值 '091216000003
' 的转换溢出了 int 列。超出了最大整数值。
select CONVERT(bigint,RIGHT(1000001+ltrim(rtrim(MAX(Salesodd))),6)) from MasterSingle
select RIGHT(max(Salesodd),6) from MasterSingle
--能正确显为 0003
select cast(RIGHT(max(Salesodd),6) as int) from MasterSingle
/*
服务器: 消息 245,级别 16,状态 1,行 1
将 nvarchar 值 '0003
' 转换为数据类型为 int 的列时发生语法错误。*/
select
cast(replace(replace(RIGHT(max(Salesodd),6),char(10),''),char(13),'') as int)
from MasterSingle