云服务器网:购买云服务器和VPS必上的网站!

关键字SqlServer中闭包关键字的利用

SqlServer 中的闭包关键字是一种特殊的上下文环境,在使用到它时,会自动地为用户提供有关SQL语句履行的特定信息,以便更好地控制查询结果。关于SqlServer中闭包关键字的利用,罗列以下:
1、可以利用于任何对象,它作为一个局部变量,从而将数据库里的变

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、可以将函数包裹在查询中,利用闭包关键字可使结果更准确灵活地控制,以到达更好的查询效果,以下:

```sql
DECLARE @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 | 云服务器网,转载请注明出处!

关于作者: yuntue

云服务器(www.yuntue.com)是一家专门做阿里云服务器代金券、腾讯云服务器优惠券的网站,这里你可以找到阿里云服务器腾讯云服务器等国内主流云服务器优惠价格,以及海外云服务器、vps主机等优惠信息,我们会为你提供性价比最高的云服务器和域名、数据库、CDN、免费邮箱等企业常用互联网资源。

为您推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注