因此,我有一列数据,使用前面的示例,体温,它存储为 varchar,因此没有记录被拒绝,但是,它包含数字数据。
向我发送数据的人使用的系统不够完善,所以我有一些不正确的数据。我需要做的是编写一个 SQL 查询来查找高于或低于某个值的有效值。
例如,所有超过 104 的温度,应指示极端情况或错误。
我试过了:
select count(1), result_num from VITALS where test_cd is 'TEMP' and cast(result_num as integer) > 104 group by result_num;
这返回了一个无效数字错误,所以我认为我在某些行上有无法转换为整数的字符,我发现记录有负值(数字前的“-”)和一些说“NULL”的记录,所以我修改了我要阅读的查询:
select count(1), result_num from VITALS where test_cd is 'TEMP' **and result_num not like '%-%' and result_num not like '%NULL%'** and cast(result_num as integer) > 104 group by result_num;
...它仍然返回一个无效的数字错误。我已经三次检查了我的 RESULT_NUM 字段中的数据,这些是唯一的字符响应。
所有其他响应,无论是否合法临时,都是数字,除了小数之外没有其他字符。
我是否需要在括号或其他内容中链接“不喜欢”语句?
这可能是一个简单的答案,但它让我发疯。