这是试图运行此查询时,我得到的错误:转换VARCHAR值‘307 307 307’时转换失败“...”到的数据类型为int
转换失败到 数据类型int。
查询:
select count(sd.mrid)
,replace(replace(substring(sd.mrref_to_mr, charindex('l', sd.mrref_to_mr), len(sd.mrref_to_mr)), 'l', ''), 'x10', '')
where sd.mrref_to_mr like '%x10'
group by replace(replace(substring(sd.mrref_to_mr, charindex('l', sd.mrref_to_mr)), 'l', ''), 'x10', '')
, imw.mrtitle
order by replace(replace(substring(sd.mrref_to_mr, charindex('l', sd.mrref_to_mr)), 'l', ''), 'x10', '') desc
,它的抱怨领域是这样的:
L5587x6 5587
或将有类似5587
或L5587x6
我需要的只是5587
但我需要它看起来像一个数值。我只需要匹配到另一个领域是MRID,它是一个int
随着最近一次对您的查询的编辑,您不再有一个from子句。 (在这里我并不想挑剔,但是如果你要在你的查询中尝试一组相当复杂的嵌套字符串函数,你真的必须注意细节。你的两个版本我看到的查询都有基本的语法错误,没有人能够在没有看到实际的查询失败的情况下帮助你,而不是语法错误的类似查询。) – DeadZone 2015-03-31 18:58:48