昨日、db field
の型を取得しなければならないシナリオを得ました。そのベースに、フィールドの説明を記述する必要がありました。 Likeデータベース関数VS Caseステートメント
Select (Case DB_Type When 'I' Then 'Intermediate'
When 'P' Then 'Pending'
Else 'Basic'
End)
From DB_table
私はこのケースステートメントの代わりにdb関数を書くことを提案しました。これは、これが再利用可能になるからです。同様
Select dbo.GetTypeName(DB_Type)
from DB_table
興味深い部分は、私たちの開発者の一つであるが、データベース機能を使用すると、database functions
として非効率的になるというCase statement
より遅いです。私は効率的な面でより良いアプローチである答えを見つけるためにインターネット上で検索しましたが、残念ながら満足のいく回答とはみなされませんでした。あなたの考えを私に教えてください。どちらのアプローチが良いですか?
この 'dbo.GetTypeName(DB_Type) 'は同じ' CASE'式を持っていますか?すなわち、 'CASE'式を直接クエリに書くことと、それをパフォーマンスと再利用性の点でユーザー定義関数***に入れることの違いについて質問しています。右? –
はい!すべてが同じです。 –