我运行了此查询。大多数情况下,它可以正常工作,但有几条记录中包含非数字部分,这会导致问题得不到解决。我需要能够选择只是整数的记录。获取仅为数字的记录
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和劳动。我如何修改where子句以实现这一效率?
这是要走的路。追加'.0e0'会导致十进制数字无法通过ISNUMERIC检查,因为有一个额外的小数点,并且会导致科学记数法(如浮点数)中的数字由于指数加倍而失败。因此,这优雅地排除了非整数情况,并确保您的子字符串将是一个数字整数。 – 2011-12-20 21:13:26
+1 - 绕过'ISNUMERIC()' – JNK 2011-12-20 21:30:38
+1中意想不到的积极方式的有效方法,但是不会仅仅'.0'就足够了吗? – 2011-12-20 23:21:37