したがって、データの列があります。前の例である体温を使用すると、レコードが拒否されないように 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 フィールドのデータを 3 回チェックしましたが、これらが唯一の文字応答です。
他のすべての応答は、正当な一時であるかどうかにかかわらず、小数点以外の文字を含まない数値です。
「好きではない」ステートメントを括弧などでリンクする必要がありますか?
これはおそらく単純な答えですが、それは私を夢中にさせています.