通常のネストされたステートメントの単純な比較としての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秒