检查 varchar() 是否为 int

Blu*_*ppy 1 t-sql sql-server

我继承了第三方应用程序中的一个表,其中包含字符串和整数 - 我想拆分该表,但想知道确定该值是否为整数的最快方法?列是 varchar(250)

e.g.
Save
123456
Edit
Save
123455
Delete
123444
Run Code Online (Sandbox Code Playgroud)

use*_*983 6

我建议使用,如果无法转换值,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.
Run Code Online (Sandbox Code Playgroud)

如果您更喜欢语法,还可以选择TRY_CAST( TRY_CAST(YourColumn AS int))。

  • 哈哈,看来我们又发布了同样的内容。 (2认同)

Sea*_*nge 5

我会使用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
Run Code Online (Sandbox Code Playgroud)