2010-12-02 14 views
4

Y at-il un moyen facile d'obtenir tous les enregistrements où le lancement d'une colonne varchar à un bigint échouerait? Cela provoque une erreur de conversion:Sélectionnez les enregistrements qui échouent la colonne varchar à bigint

SELECT CAST(IMEI AS BIGINT)FROM RMA 

Utilisez cette sql comme exemple:

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 

Ainsi, dans cet exemple, j'ai besoin que le record avec IMEI = 'BN332VWY653577440220'.

Merci.

Répondre

4

Essayez la fonction T-SQL ISNUMERIC:

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

Voir la MSDN SQL Server Books Online docs pour elle.

+0

Oh, j'ai oublié cette fonction. Merci –

+2

@Tim Schmelter: vous pouvez toujours compter sur Stackoverflow comme votre "mémoire étendue" ;-) –

Questions connexes