T-SQL
記録 テーブル値はあまり多行テーブルを扱うことに向いていないようだ。
記録 SQL Server 2008 R2とSQL Server 2012ではOVER句で出来ることが大きく異なる。
課題 ストアドプロシージャとビューとユーザ定義関数について調べる。 一文で済ますには複雑で、定期的に繰り返すSELECT文を書くことになった。取り敢えずガリガリ書いてファイル保存して定期実行でも良いが、そのSELECT文の結果をほかの人も欲しがるとなる…
課題 DBのあるテーブルと構成の同じレコードが与えられた時、そのレコードの要素全てが一致するレコードがテーブル内に存在するか確認するクエリを書く。
課題 主キーがないことが原因で同一レコードが複数登録されているテーブルから重複レコードを削除し、テーブル内のレコードが全て唯一な状態にする。
課題 SQL Serverインポートウィザードを使ってcsvのインポートを試みたところ、日時データでエラーが発生する。その理由を探った。(簡単だった)
課題 何となく使っていたGOと;(セミコロン)って一体なんだろうと思ったので調べることとした。
課題 以前「グループ毎に最大値や最小値を持つレコードを抽出する」という記事をまとめた(下記リンク)。 2015-09-28 - とりあえず半歩 この時は自前のサンプルデータを用意して試していたが、コードが小奇麗になったくらいで実行時間などいまいち違いがわ…
課題 クエリのテストや学んだことを試したい時、サンプルデータベースがあるとすぐに試すことができて便利だと思う。 嬉しいことにMicrosoftはAdventureWorksというサンプルデータベースを用意してくれている。 これからの勉強のための準備として、今回はこ…
課題 クエリを書いていると、何度も同じ中間テーブルを書いている時がある。自分の場合、テーブル結合を幾つかしている時に多い。 同じ中間テーブルのクエリを何度も書いているとミスの元だし修正するにも手間だし見難いしで大変なので、共通テーブル式を使…
課題 SQL Server Management Studio上で一時テーブルを使ったクエリをテストしているとき、テスト前に毎回一時テーブルを手動で削除するのが面倒。テスト実行時に一時テーブルが存在していたら削除して作りなおすようにしたい。
課題 INSERT文で複数レコードをテーブルに一括挿入する。 1レコード挿入するごとにINSERT文を1文書くのも大変なので、まとめて挿入したい。
課題 グループ毎に最大値や最小値を持つレコードを抽出する。 少し前までJOINを使って実現してきたけれど、実行時間が長くて困っていた。データ抽出にかかる時間を短くしたい。 実行 実行環境はMicrosoft SQL Server 2008 R2 Express. 次に示すサンプルテー…
課題 SELECT以外のレコード操作を覚える。 いつも「UPDATEの文法ってなんだっけか」とか「DELETEってこんな使い方で合ってるよね……?」と迷って調べて時間がかかる。文法を定着させて調べることに使っていた時間をほんのちょっと短縮しよう。 実行 []で囲ま…