私のテーブルの列には、家の住所の番号が格納されています。
残念ながら、以前の同僚は思考のファンではなかったので、タイプの列を作成varchar
し、ソフトウェアへの入力をブロックしませんでした...そのため、家/アパートの数が「NI」である行の束で立ち往生しています、意味のある番号の代わりに、「情報なし」、「不明」など...
数字ではない行だけを選択したい...select * from table where CAST(column as int)
例外をスローするようなもの
私のテーブルの列には、家の住所の番号が格納されています。
残念ながら、以前の同僚は思考のファンではなかったので、タイプの列を作成varchar
し、ソフトウェアへの入力をブロックしませんでした...そのため、家/アパートの数が「NI」である行の束で立ち往生しています、意味のある番号の代わりに、「情報なし」、「不明」など...
数字ではない行だけを選択したい...select * from table where CAST(column as int)
例外をスローするようなもの
IsNumeric、IsInt、IsNumberを見てください。isnumericだけを使用することはできません。これはtrueを返します-記号やそのようなもの
たとえば、これは1を返します
SELECT ISNUMERIC('2d5'),
ISNUMERIC('+')
select * from table where ISNumeric(column)=0
しかし、それは誤検知を与える可能性があります....。
これを試して:
SELECT * FROM table WHERE ISNUMERIC(column + 'e0') = 0
キャストおよび必要なその他のロジックを試行する関数を作成し、値が要件を満たさない場合は0を返し、成功した場合は1を返します。次にwhere句で関数を使用します。