SQL Serverで前レコードの値を参照する②

前回、ROW_NUMBERを使った前レコードの値を参照するSQLを紹介しましたが、別の方法を紹介します。
コーディング例実行結果氏名日勤務時間前日佐藤15000佐藤25501佐藤302山本100山本24601山本35102田中1 ...MERGE文でデータの存在を確認せずにINSERTまたUPDATEを実行する方法

SQLServerではMERGE文を使うと更新先に該当のキーのデータがあるかないかをIF文で確認したりせずに1行でINSERTもしくはUPDATE文を切り替えて実行することができます。
SQLServerで検索時Order BYでNULLのデータを後ろに並べる方法

SQLServerで検索時Order BYでNULLのデータを後ろに並べるにはORDER BY句にちょっとした工夫が必要になります。今回はCASE WHEN、ISNULL関数を利用した方法を解説します。
SQLServerで指定した文字を繰り返して出力する関数REPLICATE

SQLServerのT-SQLには指定した文字(文字列)を繰り返し出力してくれる関数があります。LEN関数などと組み合わせることでSELECTした文字列の長さを統一できるなどといったメリットがREPLICATE関数にはあります。
SQLServerでユニークインデックスとカラム情報を取得してテーブル定義書を作成する

SQLServerではsys.objects, sys.columns,sys.tables,sys.key_constraints,sys.index_columnsシステムビューを利用すればユニークインデックスとカラム情報を取得す ...
SQLServerでテーブルのカラム名を取得する方法

SQLServerでテーブルのカラム名を取得する方法はsys.objects, sys.columnsという2つのシステムビューを利用して取得します。
SQL Serverで階層問合せ

レコードに自身のコードと親コードを持ち、親子関係よりツリー構造を抽出するものをOracleでは階層問合せといい、START WITH句、CONNECT BY句を使用して抽出できますが、SQL ServerにはSTART WITH句、C ...
SQL Serverで指定した日付期間のデータを作成する

例えば出勤時刻・退勤時刻のデータを基に、タイムカードのような1ヶ月分の出退データを出力する場合、出勤時刻や退勤時刻は主に平日だけしかデータがないので、ベースとなる1ヶ月分の日付データを作成する必要があります。
そういった場合に ...
SQL Serverで日付型を文字列に変換する

日付型を文字列に変換する場合、VBではFORMAT関数、JAVAではToStringメソッドでyyyyMMddのような日付書式を指定して変換しますが、SQL Serverでは日付書式を指定した文字列への変換ができません。
そこ ...
SQLServerの一時テーブル(テンポラリーテーブル)の作り方

SQLServerにはセッションが有効な間だけ利用できる一時テーブル(テンポラリーテーブル)を作成することができます。この一時テーブル(テンポラリーテーブル)を利用すると一時的にデータを保管できたりSQLが簡潔に書けるようになるなどと ...
SQLServerで文字列をカンマ区切りにする方法

SQLServerで指定された文字列をカンマ区切りにする方法です。
※SQL Server 2016以降では「STRING_SPLIT」という関数が実装されています
連番の中で 「抜け番」見つけるSQL

連番で作成した情報で抜け番を探すというのは割とよくある処理です。今回はそれをSQLで簡単に取得する方法を解説します。
T-SQLで指定した月の月末日付を簡単に求める方法

SQLServerのT-SQLで指定した月の月末日付を求めるには「EOMONTH」関数を使うと簡単に取得できます。今回はEOMONTHの使い方を解説します。
SQL Sever 2017を無料で使う方法

SQLServerは無料でデータベース容量が10GBまでの小規模のデータベースシステムを使ったアプリケーションやシステムであれば「SQL Server 2017 Express」が利用でき、本番運用はできませんが、開発環境や技術検証用 ...
SQLServerでSQLだけでデータの小計や総合計を出力する方法

SQLServerでは「WITH ROLLUP」と「GROUPING()」を組み合わせて利用することで、データの小計や総合計を出力することができます。
SQLServerでシステム内でユニークな値を生成するNEWID()の利用方法

SQLServerでシステム内でユニークな値を利用したい時があります。そのような時に便利に使えるのがNEWID()です。
SQLServerのPIVOTを使って縦横(行列)変換を行う方法

SQL ServerではPIVOT句を利用することで、簡単に縦横(行列)変換することができます。
SQL Server Management StudioでSQL文を整形をする

SQL Server Managiment StudioでSQL文の整形ができれば便利なんですが
標準では整形の機能は備わっていません。
そこで、外部ツールを使用して整形できるようにする方法を紹介します。
必 ...SQLServerで指定した文字で文字列を分割する

SQL Server 2016以前のSQLServerには指定した文字で文字列を分割する関数が用意されていないので、自作する必要があります。
SQLServerのストアドプロシージャーで例外をキャッチする方法

SQLServerのストアドプロシージャー(Transact-SQL)では、SQL Server 2008以降でTYR~CATCH文で例外をキャッチすることができます。