【问题标题】:where not dataype sqlwhere 不是数据类型 sql
【发布时间】:2019-03-18 10:45:26
【问题描述】:

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

Microsoft SQL Server 管理器。

【问题讨论】:

  • 请提供样本数据、所需结果和数据库标签。您只需查看列的类型即可了解其类型。类型不会因行而异。
  • 在 SQL 中,一列只是一种数据类型。不过,您可以轻松过滤数字是更高还是更低。
  • @jarlh Microsoft SQL 服务器管理器。
  • 猜测WHERE TRY_CONVERT(smallint,YourColumn) IS NULL AND YourColumn IS NOT NULL?
  • 只需应用数据类型的最小/最大范围,例如where column between -32768 to 32767 for smallint

标签: sql sql-server int where


【解决方案1】:

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

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

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

不要忘记将&lt;TableName&gt;&lt;ColumnName&gt;替换为相关表和列的名称。

如果&lt;ColumnName&gt; 中的值为null 或无法转换为int,则Try_Cast 内置函数将返回null(因为所有smallint 值也可以转换为int , 也无法转换为smallint)。

【讨论】:

    猜你喜欢
    • 2011-05-20
    • 1970-01-01
    • 2012-04-17
    • 1970-01-01
    • 2014-08-27
    • 1970-01-01
    • 2017-07-29
    • 1970-01-01
    • 2012-05-11
    相关资源
    最近更新 更多