【发布时间】:2015-08-28 17:46:40
【问题描述】:
我有选择查询,我需要按升序排序。列具有varchar 数据类型,因此我需要将其转换为int。我的查询工作正常,但在某些情况下,用户需要输入此类值“121-1”,因此在选择查询时会出错
'将 varchar 值 '121-2' 转换为数据类型 int 时转换失败。'
那么即使输入这样的值('121-1'),是否有任何解决方案可以忽略此错误。 ? 以下是我的查询
SELECT ( [casetype] + '/' + CONVERT(VARCHAR(50), caseno)
+ '/' + CONVERT(VARCHAR(50), Year(Getdate())) )AS CaseNo,
caseno_id,
CONVERT(VARCHAR(20), [filedate], 103) AS DateOfFilling,
disrtictfrom,
tbl_recordrequisition.compname,
tbl_recordrequisition.respname,
casestage,
CONVERT(VARCHAR(20), nextdate, 103) AS NextDate,
tbl_recordrequisition.remarks
FROM tbl_recordrequisition
ORDER BY LEFT(caseno_id, 2) ASC,
RIGHT(caseno_id, 4) ASC,
Cast(( Replace(Replace(caseno_id, LEFT(caseno_id, 3), ''), RIGHT(
caseno_id, 5),
'') )
AS INT) ASC
【问题讨论】:
标签: sql sql-server