sql-server - 获取只有数字的记录

标签 sql-server sql-server-2005

我正在运行此查询。在大多数情况下它工作正常,但有一些记录具有非数字部分,这会导致问题。我需要能够只选择整数记录。

select distinct SUBSTRING(PAPROJNUMBER, 1, 5) AS STUDY_NUMBER
        FROM         dbo.PA01201 AS PA01201_1
        where PAPROJNUMBER>'0'

例如,结果列表的一部分如下所示:

68145
68146
68147
7762A
99999
LABOR

除了 7762A 和 LABOR,我想要所有这些。我怎样才能修改 where 子句以有效地实现这一点?

最佳答案

将“.0e0”添加到子字符串将确保 ISNUMERIC 仅返回有效整数。

select distinct SUBSTRING(PAPROJNUMBER, 1, 5) AS STUDY_NUMBER
    FROM dbo.PA01201 AS PA01201_1
    where PAPROJNUMBER>'0'
        AND ISNUMERIC(SUBSTRING(PAPROJNUMBER, 1, 5) + '.0e0') = 1

关于sql-server - 获取只有数字的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8581853/

相关文章:

SQL Server 2005 : How to drop selected tables, 与所有相关对象

sql - 如何索引具有类型 2 缓慢变化维度的表以获得最佳性能

sql - 查询具有来自不同数据库的两个表,每个表都没有 db 前缀

c# - 是否可以从 .net 代码调试到 SQL Server 存储过程代码?

SQL 通过连接表从其他表中选择总和作为列

sql-server - 使用查询或存储过程延迟 SQL Server 2000 查询直到处理器利用率低于 50%?

sql-server-2005 - SQL脚本根据条件将数据行拆分为多行

c# - 在 C# 应用程序中获取 Transact SQL 查询结果

sql - 使用go in sql执行动态查询

SQL SERVER 2005 USE 语句