sqlserver 中的闭包关键字是一种特殊的上下文环境,在使用到它时,会自动地为用户提供有关SQL语句履行的特定信息,以便更好地控制查询结果。关于SqlServer中闭包关键字的利用,罗列以下:
1、可以利用于任何对象,它作为一个局部变量,从而将数据库里的变量和结果集之间联系在一起。下面是利用于新建表中的一个小例子:
“`sql
CREATE TABLE #products (
id INT,
name NVARCHAR(50)
)
INSERT INTO #products
VALUES (1, ‘Apple’),
(2, ‘Banana’),
(3, ‘Grape’)
— Set up the CORRELATION name
DECLARE @products AS #Products
SET @products= (SELECT * FROM #products)
— Create the correlated query
SELECT *,
FROM @products
WHERE id > 1
该语句中,创建的闭包关键字局部变量叫做#products,它联系了13行select语句,让查询结果中只包括id大于1的行。
2、可以将函数包裹在查询中,利用闭包关键字可使结果更准确灵活地控制,以到达更好的查询效果,以下:
```sqlDECLARE @string AS NVARCHAR(50)
SET @string = 'Apple' SELECT *
FROM #products WHERE (fn_remove_accents(name) = fn_remove_accents(@string))
该语句中,用2个函数将产品列表中的字符串都传入其中,并且利用联系查询,让输出参数中的字符串都没有特殊字符,从而使查询更准确。
3、也能够用于将子查询作为参数传入,这样可以提高查询的性能,同时返回简洁、易懂的查询结果,以下:
“` sql
DECLARE @str AS NVARCHAR(50)
SET @str = ‘Apple’
SELECT *
FROM #products
WHERE EXISTS (SELECT 1 FROM #products WHERE fn_remove_accents(name) = fn_remove_accents(@str))
在上面的例子中,我们利用了EXISTS这个子查询,在将特定的参数传入的进程中,就能够无需再用普通的join语句便取得准确的结果。
综上,SqlServer中的闭包关键字可以有效地帮助用户控制查询结果,例如可以将函数包裹在查询中,返回更准确灵活的查询结果,也能够将子查询作为参数传入,让查询履行更快。
本文来源:https://www.yuntue.com/post/220121.html | 云服务器网,转载请注明出处!

微信扫一扫打赏
支付宝扫一扫打赏