プロセスによって消費された秒数を varchar として格納するフィールドがあります。SQLサーバーで次のクエリを使用して、最も時間がかかった行を見つける簡単なクエリを実行しています。
select top 1 Cusip from Cusipprocesstime
where
status != 'In Progress' and status is not null
order by cast(status as decimal(18,7)) desc
ここで、ステータスはプロセスが消費した秒数に設定されます。進行中、ステータスは「進行中」に設定されます。
上記のクエリを実行すると、ステータスが「進行中」のレコードがない場合、クエリは正常に機能します。
ステータスが「進行中」のレコードがある場合、クエリは失敗し、「データ型 varchar を数値に変換中にエラーが発生しました。
不思議なことに、条件に一致するレコードの最高値のみを取得する方法はありますか?