通常のネストされたステートメントの単純な比較としてのSQLServer

通常のネストされたステートメントの単純な比較としてのSQLServer


序文

私はデータ分析の初心者で、今年SQLServerを使い始めました。仕事の必要性から、過去2日間、SQL Serverと同様にwithの使用法を研究してきました。いくつかの上級投稿を読んだ後、実際の仕事での自分のニーズと組み合わせて、同じ状況での自分の経験の一部を以下に示します。参考までに友達として。


1. SQL Serverでのwithの役割は何ですか?

with as short文は、サブクエリ部分とも呼ばれます。SQLフラグメントを定義します。フラグメントはSQLステートメント全体で使用され、SQLステートメントの可読性を向上させるために使用される場合もあれば、データ提供の一部としてすべてUnionで使用される場合もあります。

目的としてはwithを使用します。まず、コードが読みやすくなることを願っています。次に、多くの共有を確認しました。withステートメントを使用すると、通常のネストされたクエリステートメントを使用するよりもクエリの効率が向上します。私の仕事でどれだけ改善できるかを知っています。

2つのネストされたクエリステートメント

1.コード

私は食品小売業に従事しているので、指定された地域の年間気象条件を知る必要があるので、過去の天気予報表を作成しました。
tbweatherbyday:テーブル名、データ量は約60,000
都市:フィールド名
次のクエリステートメントでは、都市名に「州」が含まれている都市をクエリします。

コードは以下のように表示されます

select * from tbweatherbyday where city in
(select city from tbweatherbyday where city like'%州')

2.クエリ結果

クエリレコード:13,242レコード、クエリ時間:0.238秒

ネストされたクエリ

3つ目は、テーブル変数の使用方法です。

1.コード

コードは以下のように表示されます

declare @t table(city nvarchar(5))
insert into @t(select city from tbweatherbyday where city like'%州')
select * from tbweatherbyday where city in(select * from @t)

2.クエリ結果

クエリレコード:13242、クエリ時間:0.278秒
テーブル変数クエリ

第四に、withasメソッドを使用します

1.コード

コードは以下のように表示されます

cr:テーブル変数と同じように使用される一般的なテーブル式

with 
cr as
(select city from tbweatherbyday where city like'%州')
select * from tbweatherbyday where city in(select * from cr)

2.クエリ結果

クエリレコード:13242、クエリ時間:0.369秒

として


総括する

上記の比較から、3つのクエリ時間に大きな違いはないことがわかります。この結果は、他の先行データで見た結論とは少し異なります。テストの背景が異なる可能性があります。それから、知識と行動を融合させる必要があることを学びました。情報は参考値にすぎません。実際の使用はあなた自身の仕事と組み合わせる必要があり、それはより重要になります。欠点がある場合は、訂正してください。@ [TOC]に感謝します(カスタムカタログのタイトルをここに記入してください)

おすすめ

転載: blog.csdn.net/weixin_45278370/article/details/115022451