1

T-SQLでカスタム述語を定義することは可能ですか?たとえば、次のように書くことができます。

SELECT a,b,c 
FROM MyTable
WHERE dbo.myCustomPredicate(a)

簡単な回避策は、BITを返すスカラー値関数dbo.myCustomPredicateを作成し、WHERE句を次のように変更することです。

WHERE dbo.myCustomPredicate(a)=1

「=1」を回避することが可能かどうかだけ興味があります。

4

1 に答える 1

3

いいえ、これは不可能です。

SQL Serverは、ANSISQLブールデータ型をサポートしていません。

の実装が何であるかはdbo.myCustomPredicateわかりWHERE dbo.myCustomPredicate(a)=1ませんが、SQLServerでのScalarUDFのSargabilityと一般的なパフォーマンスの両方の理由から、同様に回避する必要があります。

于 2013-03-24T15:19:09.917 に答える