2010-12-02 39 views
4

有沒有一種簡單的方法來獲取所有記錄的位置投擲varchar列到一個bigint會失敗?這將導致轉換錯誤:選擇記錄失敗鑄造varchar列bigint

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

哦,我忘了那個功能。謝謝 – 2010-12-02 13:28:01