检查varchar()是否为int [duplicate]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了检查varchar()是否为int [duplicate]相关的知识,希望对你有一定的参考价值。
这个问题在这里已有答案:
我在第三部分应用程序中继承了一个包含字符串和整数的表 - 我想分割表但想知道确定值是否为int的最快方法?列是varchar(250)
e.g.
Save
123456
Edit
Save
123455
Delete
123444
答案
我建议使用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)
)。
另一答案
一种方法是使用SQL Server的增强型LIKE
运算符:
SELECT col
FROM yourTable
WHERE col NOT LIKE '%[^0-9]%';
使用TRY_CONVERT
也可能是一个选项,但前提是您使用的是更新版本的SQL Server。
另一答案
我会用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
以上是关于检查varchar()是否为int [duplicate]的主要内容,如果未能解决你的问题,请参考以下文章
如何检查存储在varchar列中的逗号分隔列表中是否包含数字?
如何在 SQL 条件中将 INT 转换为 VARCHAR [重复]