检查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_CASTTRY_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 [重复]

SQL 检查 Varchar 是否能转换为 NUMERIC

如何检查字符串是不是能够转换为 float 或 int [重复]

检查python var if int [重复]

是否可以检查一个值是否是 C# 中的 int? [复制]