我有一个包含列vouchn
的表格。这个专栏的记录,例如 - 如果是收据凭证,它将像RV103那样记录,并像PV99一样存储。我也使用这个sql来获取最大记录。
SELECT MAX(REPLACE(vouchn, 'RV', '')) AS vcno
FROM dbo.dayb
WHERE (vouchn LIKE '%RV%')
直到我到达RV999才行。之后甚至记录RV1000就是上面的sql检索RV999。上面代码的错误是什么?
答案 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%')