2010-12-02 10 views
4

は、varcharカラムをbigintにキャストするすべてのレコードを簡単に取得できる簡単な方法ですか?bigintへのキャストvarcharカラムに失敗するレコードを選択する

SELECT CAST(IMEI AS BIGINT)FROM RMA 

使用例として、このSQL::

if OBJECT_ID('tempdb..#RMA') is not null 
    DROP TABLE #RMA 

CREATE TABLE #RMA 
( 
    IMEI VARCHAR(20) 
) 
INSERT INTO #RMA(IMEI)VALUES('352382021485772') 
INSERT INTO #RMA(IMEI)VALUES('352022033456409') 
INSERT INTO #RMA(IMEI)VALUES('BN332VWY653577440220') 

SELECT * FROM #RMA 
SELECT CAST(IMEI AS BIGINT)FROM #RMA 

DROP TABLE #RMA 

ので、この例では、私はIMEI = 'BN332VWY653577440220' でレコードのみを必要とするこれは、変換エラーが発生します。

ありがとうございます。

答えて

4

は、T-SQL ISNUMERIC機能を試してみてください:

SELECT IMEI 
FROM #RMA 
WHERE ISNUMERIC(IMEI) = 0 -- not numeric 

はそれのためMSDN SQL Server Books Online docsを参照してください。

+0

ああ、私はその機能を忘れてしまった。おかげで –

+2

@ティムSchmelter:あなたは常にあなたの "拡張メモリ"としてStackoverflowに頼ることができます;-) –

関連する問題