我一直在教自己T-SQL大约一年,现在才遇到任何和所有运营商。到目前为止,我从未见过它们在任何示例代码中使用过,这些是很少使用的,是否有优选的运算符来获得相同的结果?
答案 0 :(得分:2)
我在生产代码中使用了ANY
一次。我刚才在博客上发表了这篇文章here。但这是后代的代码:
with cte as (
select * from (values
('Name' ),
('StandardCost'),
('ListPrice' )
) as x(col)
)
, column_ordinals AS (
select sys.fn_cdc_get_column_ordinal('Production_Product', col) as [ordinal]
from cte
)
SELECT *
FROM cdc.[fn_cdc_get_net_changes_Production_Product](
sys.fn_cdc_get_min_lsn('Production_Product'),
sys.fn_cdc_get_max_lsn()
, 'all with mask'
) AS fcgacpp
WHERE [__$operation] = 4 --after update
AND 1 = ANY (
select [sys].[fn_cdc_is_bit_set]([ordinal], [__$update_mask])
from [column_ordinals]
);
基本上,如果在__ $ update_mask位掩码中表示Name,StandardCost或ListPrice中的任何一个,则从CDC数据返回该行。我同意ANY
和ALL
并不经常使用,但是当你需要其中一个时,它们就很方便!
答案 1 :(得分:0)
是。它们用于微软认证考试中,用于琐碎追求式主题的问题,除了展示所有功能以及使考试更加困难之外,这些主题实际上并没有被广泛使用。也许作为一个利润动机,通过提高失败率从考生那里获得更多的钱。
除此之外,他们并没有太多使用。