T-SQL

T-SQLのQUOTENAME関数の存在をいつも忘れている

昔書いたブログを読んでいた。 mrgchr.hatenablog.com SQL SERVER(T-SQL)では、下記のように文字列結合でクオートするのではなく、 SELECT @sql_command_pivot_list = STRING_AGG('[' + s.Item + ']', ',') QUOTENAME関数を利用する方が、見た目にも意味的に…

動的ビューでよく使うクエリ備忘録

SQL Serverの動的ビューは非常に多くの情報を提供してくれますが、如何せん数が多くその全部を全て覚えるのは現実的ではありません。 時々使うクエリを備忘録としてまとめます。 基本的にはどこで拾ったものですが、どこで拾ったかは記録していないので出典…

SQLServer(T-SQL)にてCONCAT_WS関数は動的SQL作成時に便利

ご存じの通り、SQLにおいてはSELECT句などでの末尾のカンマはエラーとなります。 SELECT Col1, Col2, Col3, --Error! 末尾のカンマはダメ FROM YourTable 普通のSQLを書いている分には気を付ければ良いだけではあるのですが、ストアドプロシージャなどで動的…

SQL Serverにてインデックスの再構築を行うストアドプロシージャ備忘録

SQL Serverにて、断片化したインデックスのみを再構築(Rebuild)や再構成(Reorganize)する必要があり、その時使ったストアドプロシージャの備忘録です。

SQL Server(T-SQL)にて、空間データ型(geograhy)で遊んだ備忘録 Part.3

凸包よ、こんにちは Geographyで遊んでいたら凸包(ConvexHull)を簡単に求めることが出来ることを知りました。 STConvexHull (geography データ型) - SQL Server | Microsoft Docs 凸包とは、「与えられた集合を含む最小の凸集合」のことで、「集合を輪ゴムで…

SQL Server(T-SQL)にて、空間データ型(geograhy)で遊んだ備忘録 Part.2

前回: mrgchr.hatenablog.com

SQL Server(T-SQL)にて、空間データ型(geograhy)で遊んだ備忘録

SQL Serverは空間データ型をサポートしており、主に平面を扱うgeometry型、GPSの緯度経度座標を扱うgeography型があります。 一見すごく取っ付きにくそうなのですが、Geography型を使ってみたら非常に楽しかったので備忘録です。 docs.microsoft.com

SQL Server(T-SQL)にて、日毎のデータを月毎で集計する

昨日の記事では、月毎のデータをクロス表に変換しました。 mrgchr.hatenablog.com SQLでは「日毎」のデータを「月毎」に変換する、というのもよくあるシナリオなので書いておきます。

SQL Server2017で追加されたSTRING_AGG関数はPIVOTと相性が良い

こういう感じ↓のいわゆる「縦持ち」のデータを こういう感じ↓のいわゆる「横持ち」(クロス表、ピボットテーブル)表示したいという需要は多くあります。 ExcelやBIツールなどを使えばドラッグアンドドロップでほーいっと簡単にできますが、SQLServer単体でや…

SQL Server(T-SQL) CREATE OR ALTER

SQL Server 2016 SP1 にて導入されていた(らしい)、CREATE OR ALTER についての備忘録です。

SQL Server(T-SQL)にて連番を生成する方法アレコレ

SQLにて連番を生成するという需要は時々あり、私の場合はテストデータやダミーデータの生成に用いることが多いです。

MCP Exam 70-464 を受験しました

マイクロソフト認定資格試験(MCP) 70-464(Developing Microsoft SQL Server Databases )を受験して、合格しました。 試験 70-464: Microsoft SQL Server 2012 のデータベースの開発 前回: mrgchr.hatenablog.com 前々回: mrgchr.hatenablog.com

MCP Exam 70-762 を受験しました

マイクロソフト認定資格試験(MCP) 70-762(Developing SQL Databases)を受験して、合格しました。 Exam 70-762: Developing SQL Databases 前回: mrgchr.hatenablog.com

MCP Exam 70-761 を受験しました

マイクロソフト認定資格試験(MCP) 70-761(Transact-SQL によるデータのクエリ)を受験して、合格しました。 Exam 70-761: Querying Data with Transact-SQL

Dapperにて、TVP(テーブル値パラメーター)を扱う(速度比較)

前回までのあらすじ Dapperにてユーザー定義テーブル型をストアドプロシージャのパラメータとして利用する方法を検討した。 mrgchr.hatenablog.com 今回はそれらの速度比較をします。

Persisted Computed Columnの計算にユーザー定義関数を用いるとパフォーマンスに悪影響がある

良かれと思ってやったのですが 今までComputed Columnの例ではロジックを分ける意味で、ユーザー定義関数を用いていました。 mrgchr.hatenablog.com

Persisted Computed Columnがなぜか不明瞭になった件

何故これがダメなのかが分からない 先日の消費税計算のComputed Columnを、Persisted指定したら何故かエラーになりました。 テーブル 'Orders' の計算列 'SalesTax' を保存できません。この列は不明確です。 これを解決します。

Computed Columnの計算結果は別のComputed Columnで参照できない

ので、Viewを使おう タイトルそのまんまなのですが、SQL ServerのComputed Columnの計算結果は別のComputed Columnで参照するとエラーになります。

Persisted Computed ColumnはComputed ColumnよりもSelectが本当に速いのか

本当に速いのか 前回の記事で、SQL ServerのComputed Columnについて、「Persisted Computed Columnの方が当然Selectは速くなる」と書きましたが、Webの情報を鵜呑みにして書いただけで未検証でした。 mrgchr.hatenablog.com というわけで確認してみました。

SQLServerのComputed Column(計算列)についての備忘録

Computed Column(計算列)について調べました。 Computed Column(計算列)は、SQLServerにて利用できる、テーブルの他の列のデータを元に値を計算する仮想列です。 たとえば、下記のテーブル定義では、FullName列が計算列となります。 CREATE TABLE [dbo].[Acc…

ページング処理のSQLアレコレ

昨日のページング処理のSQLを別の書式で書いてみます。 mrgchr.hatenablog.com