哪里没有数据类型sql

问题描述 投票:0回答:1

我正在尝试过滤一些数据 - 我有一个看起来像主要是smallint / int的列。无论如何我有可以运行where语句来说哪里不是int或者哪里不是小int?

Microsoft SQL Server管理器。

sql sql-server int where
1个回答
1
投票

如果你想要一个where子句来告诉你列是否包含无法转换为intsmallint的信息,你可以使用try_cast

SELECT *
FROM <TableName>
WHERE TRY_CAST(<ColumnName> AS Int) IS NULL

您可以将int更改为smallint以获取无法转换为smallint的值,但可以转换为int

不要忘记将<TableName><ColumnName>替换为相关表和列的名称。

如果Try_Cast中的值为null或者如果它不能转换为<ColumnName>,则内置函数的int将返回null(并且因为所有smallint值也可以转换为int,所以它也不能转换为smallint)。

© www.soinside.com 2019 - 2024. All rights reserved.