Выберите записи, которые не преобразуют столбец varchar в bigint. - PullRequest
4 голосов
/ 02 декабря 2010

Есть ли простой способ получить все записи, в которых сбой приведения столбца 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'.

Спасибо.

1 Ответ

4 голосов
/ 02 декабря 2010

Попробуйте функцию T-SQL ISNUMERIC:

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

См. Электронную документацию по MSDN SQL Server Books .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...