有没有一种简单的方法来获取所有记录,其中将 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' 的记录。

谢谢你。

最佳答案

试试 T-SQL ISNUMERIC 函数:

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

请参阅 MSDN SQL Server Books Online docs

关于sql-server - 选择无法将 varchar 列转换为 bigint 的记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4335224/

10-16 13:40