2017-08-15 6 views
0

私はなど、私はsize > 128GBでハードドライブを選択するためのクエリを作成したい列producent, size, unit値/単位テーブルからレコードを選択する最良の方法は何ですか?

samsung|256|GB 
caviar |850|MB 
sandisc|512|GB 
seagate|2 |TB 

hard_drivesテーブルを持っているsize < 1000MBsize < 1TB

あなたはsize_in_bytesのような新しい列を追加、または一部を作成しますstorage_unitsのような変換テーブルをunit, size_in_bytesという列に置き、計算に使用するか、そうしたクエリを実行するためのより良い方法がありますか?

答えて

0

すべてのディスクサイズを格納するには、おそらくMBの共通ユニットを使用する必要があります。この問題を回避するには、WHERE句のCASE式を使用できます。

SELECT * 
FROM yourTable 
WHERE 
    CASE WHEN unit = 'MB' THEN size 
     WHEN unit = 'GB' THEN 1000*size 
     WHEN unit = 'TB' THEN 1000*1000*size END > 128*1000 -- size > 128GB 
関連する問題