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