1から7までの整数でなければならないデータテーブルがありますが、データには間違いや数値以外のデータが含まれているため、列をnvarchar型変数として保存しました。今度は、間違ったデータを正しいデータの平均で評価したいと思います。つまり、値が1から7でない場合は、同じ列のデータの平均値に更新する必要があります。値1,2,3,4,5,6または7を有するセル。推定値は浮動小数点であってもよい。 MSSQLでどうすればいいですか?私はテーブルの平均値に間違ったデータを更新する
SELECT AVG(CAST(ky1 AS FLOAT)) FROM esimerkkikysely
WHERE NOT ISNUMERIC(ky1)=1 OR ky1 NOT BETWEEN 1 AND 7
を試してみましたが、それはおよそ4.643を返し
、また
SELECT AVG(CAST(ky1 AS FLOAT)) FROM esimerkkikysely
WHERE ISNUMERIC(ky1)=1
を0
を返しました。
ISNUMERIC()関数は非常に困難です。 –
でも可能です: "しかし、データには間違いや数値以外のデータが含まれているので、列をnvarchar型変数として保存しました。" - それはあなたの問題を解決する方法ではありません。まず、整数フィールドに不正なデータが入るのをやめてください。 –
私はこれが驚いた。 WHERE句は、数値を除外するように表示されます。非数値を浮動小数点に変換するか、それとも平均を見つけることができますか?できません。 –