我在第三方应用程序中继承了一个包含字符串和整数的表格-我想拆分表格,但想知道确定该值是否为整数的最快方法?列是varchar(250)
e.g.
Save
123456
Edit
Save
123455
Delete
123444
答案 0 :(得分:4)
我建议使用TRY_CONVERT
,如果无法转换该值,它将返回NULL
:
SELECT TRY_CONVERT(int, YourColumn) AS intColumn
FROM YourTable
--WHERE TRY_CONVERT(int, YourColumn) IS NOT NULL --If you only want rows that converted.
如果您喜欢语法,则还可以使用TRY_CAST
(TRY_CAST(YourColumn AS int)
)。
答案 1 :(得分:4)
一种方法是使用SQL Server的增强型LIKE
运算符:
SELECT col
FROM yourTable
WHERE col NOT LIKE '%[^0-9]%';
也可以选择使用TRY_CONVERT
,但前提是您使用的是SQL Server的最新版本。
答案 2 :(得分:4)
我会使用TRY_CONVERT。
declare @Something table(SomeVal varchar(50))
insert @Something values
('Save')
, ('123456')
, ('Edit')
, ('Save')
, ('123455')
, ('Delete')
, ('123444')
select *
from @Something s
where TRY_CONVERT(int, s.SomeVal) is not null