2016-08-22 8 views
0

私はカラムがvouchnのテーブルを持っています。この列の記録は、例えば領収伝票の場合はRV103のように記録され、PV99のように保存されます。私もgettin最大レコードのこのSQLを使用します。特定の番号の後に交換しないでください

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

RV999に達するまでは問題ありません。その後もRV1000を記録しても、上記SQLはRV999を取得します。上記のコードのエラーは何ですか?

答えて

0

REPLACE(vouchn, 'RV', '')は常にnumeric結果を返す場合は、次のことができ、次のように:

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

数値型にCONVERTを追加します。

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

変換、キャストも動作していません – Pravi

関連する問題