在特定号码后更换不工作

时间:2016-08-22 10:24:04

标签: sql-server

我有一个包含列vouchn的表格。这个专栏的记录,例如 - 如果是收据凭证,它将像RV103那样记录,并像PV99一样存储。我也使用这个sql来获取最大记录。

SELECT MAX(REPLACE(vouchn, 'RV', '')) AS vcno 
FROM dbo.dayb 
WHERE (vouchn LIKE '%RV%')

直到我到达RV999才行。之后甚至记录RV1000就是上面的sql检索RV999。上面代码的错误是什么?

2 个答案:

答案 0 :(得分:0)

CONVERT添加到数字类型:

SELECT MAX(CONVERT(BIGINT,REPLACE(vouchn, 'RV', ''))) AS vcno 
FROM dbo.dayb 
WHERE (vouchn LIKE '%RV%')

答案 1 :(得分:0)

如果REPLACE(vouchn, 'RV', '')始终返回numeric结果,则可以如下所示:

SELECT MAX(REPLACE(vouchn, 'RV', '') * 1) AS vcno 
FROM dbo.dayb 
WHERE (vouchn LIKE '%RV%')