2016-03-28 5 views
1

私は、クエリ結果を分類するために頻繁に使用する一連のケースを用意しています。 @RDOCASEは、私が上記リストアップしました完全な例保存され、短い形式のバージョンであるTSQLにストアされたケースを呼び出す

@RDOCASE 

の中へ。

CASE 
WHEN source = 'x' AND othersource = 'y' THEN 'region' 
WHEN subsource = 'm' AND othersubsource = 'n' THEN 'district' 
WHEN littlesource = 'a' AND otherlittlesource = 'b' THEN 'office' 
ELSE 'ERROR - LOOK AT ME' 
END AS "Service Channel" 

。私はそれがどこかに格納され、任意のクエリがこのデータベース上で実行されているときにいつでも呼び出すことができるという点を除いて、クエリの始めに変数を宣言するようなものだと思っています。

答えて

2

計算された列に作業をさせる必要があります。 。 。列のすべてが同じテーブルから来ると仮定:

ALTER TABLE t ADD ServiceChannel AS (<your case here>) 

値は、複数のテーブルから来た場合、あなたは、この目的のためにビューを使用することができます。また、関連する変数を渡したい場合は、おそらくスカラー関数です。

注:列エイリアスには一重引用符を使用しないでください。これは単なる混乱です。文字列と日付の定数には一重引用符を使用する必要があります。

+0

条件は複数のテーブルから発生します。私はスカラー関数が何であるか分かりません。スカラー関数に関連する変数は何ですか? – bteague

+0

@bteague。 。 。スカラー関数は、表を戻す関数ではなく、単一の値を戻す(ユーザー定義の)関数です。 –

関連する問題