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 不支持 ANSI SQL 布尔数据类型。

你没有说什么是实现,dbo.myCustomPredicate但很可能WHERE dbo.myCustomPredicate(a)=1也应该避免,因为 SQL Server 中标量 UDF 的 Sargability 和一般性能。

于 2013-03-24T15:19:09.917 回答