哪里不是数据类型sql

哪里不是数据类型sql,sql,sql-server,int,where,Sql,Sql Server,Int,Where,我正在尝试过滤一些数据-我有一个列,看起来它主要是smallint/int。我是否可以运行where语句来说明where not int或where not small int Microsoft SQL Server manager。如果需要where子句,该子句可以告诉您列中是否包含无法转换为int或smallint的信息,可以使用try\u cast: SELECT * FROM <TableName> WHERE TRY_CAST(<ColumnName> AS

我正在尝试过滤一些数据-我有一个列,看起来它主要是smallint/int。我是否可以运行where语句来说明where not int或where not small int


Microsoft SQL Server manager。

如果需要where子句,该子句可以告诉您列中是否包含无法转换为
int
smallint
的信息,可以使用
try\u cast

SELECT *
FROM <TableName>
WHERE TRY_CAST(<ColumnName> AS Int) IS NULL
选择*
从…起
其中TRY_CAST(AS Int)为NULL
您可以将
int
更改为
smallint
,以获取无法转换为
smallint
但可以转换为
int
的值

不要忘记将
替换为相关表格和列的名称


如果
中的值为空或无法转换为
int
(由于所有
smallint
值也可以转换为
int
,因此也无法转换为
smallint
),则
Try\u-Cast内置函数将返回null。

请提供示例数据、所需结果,和一个数据库标签。您只需查看列的类型即可了解其类型。类型不会因行而异。在SQL中,列仅为一种数据类型。不过,您可以很容易地筛选出一个数字是高还是低。@jarlh Microsoft SQL server manager。猜测一下TRY\u CONVERT(smallint,YourColumn)在哪里为空,而YourColumn不为空
?只需应用数据类型的最小/最大范围,例如,smallint的
WHERE column在-32768到32767之间