SQLServerまとめ

スポンサーリンク
SQL Server

GROUP BYとHAVINGを使ってデータの重複を探しだすSQL

SQLでGROUP BYとHAVINGを使ってデータの重複を探して見ます。
SQL Server

SQLServerのテーブルロック状態を取得するSQL

SQLServerのデッドロックを調査している中でロックの状態を調べるSQLがあることが判明したのでメモします。
SQL Server

SQLServerのバージョン番号を取得する方法

SQLServerのバージョン番号は「@@VERSION」を使用することで確認できます。
スポンサーリンク
SQL Server

@@ROWCOUNTで処理した件数を取得する

SQLServerでは実行したSQLで影響を与えた処理件数を@@ROWCOUNTを使用することで取得できます。
SQL Server

テーブルから列を削除する「ALTER TABLE テーブル名 DROP COLUMN 削除する列名」

既存のテーブルで不要になった列を削除する方法です。列を削除するには「ALTER TABLE」を使って削除します。
SQL Server

SQLServerのテーブルやカラムにコメントをつける方法

SQLServerで作成したテーブルやカラムにコメントをつけれないか調べたところ、sys.sp_addextendedpropertyを使えばコメントをつけれます。
SQL Server

テーブル型を戻り値とする関数の作成方法

SQLServerではINT型やVARCHAR型などを返す関数と同様にユーザー定義テーブル型を戻り値とする関数を作成できます。方法は「RETURNS」にテーブル型を指定します。
SQL Server

SQLServerでクライアントのIPアドレスを取得する

sys.dm_exec_connectionsを利用すると、SQLを発行したクライアントのIPアドレスを取得できます。無理かと思っていましたが、可能でした。
SQL Server

SQLで順位を取得するRANK()とDENSE_RANK()

SQLServerで順位を取得するRANK()とDENSE_RANK()を利用して項目の順位を取得します順位をします。
SQL Server

SQLで改行コードを含む項目を取得する

Microsoft SQL Server Managemnet Studioで検索SQLを実行すると結果ペインに結果が表示されまが、改行を含む項目も1行のデータとして表示され見にくいので、改行もそのまま表示できないかと調べました。
SQL Server

SQLServerでのInsert,Update,Deleteトリガーの使い方

SQLServerにはテーブルに対してInsert,Update,Deleteに実行される「トリガー」を設定することができ、テーブルに挿入、更新、削除されるごとにそれらの処理を呼び出すことが可能です。
SQL Server

SELECTした結果をランダムに並び変える

SQLServerでSELECTした結果をランダムに並び変えるにはORDER BYにNewID()関数の値を使います。
SQL Server

ユーザー定義テーブル型変数を使用する

SQLServer 2008には、テーブル構造の定義を表す「ユーザー定義テーブル型」というものがあります。これを利用すると独自のテーブル型を作成できます。
SQL Server

SQLServerで春分の日と秋分の日をSQLで求める計算式

春分の日と秋分の日は毎年違うので計算で春分の日と秋分の日をSQLで求めてみます。
SQL Server

SQLで当月の第何週目の何曜日か取得する

SQLServerでは関数で今日は当月の第何週目か取得する関数がないので、自作しました。
SQL Server

SQLServerのMERGEでINSERTとUPDATEを1行で実行する

SQLServerのMERGE文を利用すると、指定した条件に応じて挿入(INSERT)、更新(UPDATE)、削除(DELETE)を実行することが1行のSQLで可能です。
SQL Server

指定された月の日数をSQLで求める

SQLで指定された月の日数を計算する処理です。「9999/12」以外はきちんと計算できます。
SQL Server

DATETIMEデータ型のミリ秒丸め現象の対応方法

DATETIMEデータ型のミリ秒には精度によって丸めがあり、利用する場合には注意が必要です。000、.003、.007 以外の値は .000、.003、.007 に丸められます。
SQL Server

SQLでビット演算を行う

SQLServerのT-SQLでビット演算を使って、該当のデータを探し出します。
SQL Server

連番中で 「歯抜け」の番号を見つけ出すSQL

よくある処理でテーブルに設定されている連番の中で「歯抜け」の番号を見つけ出すSQLです。
SQL Server

SQLServerでカンマ区切り (CSV) で文字列取得

Where句のINにSQLで取得した結果を直接利用したりするのに、SQLServerで複数件存在するデータを1行のカンマ区切りのデータとして取得して見ます。
SQL Server

ORDER BYでNULLのカラムをASCでソートした時に最後に表示する方法

SQLServerで何も考慮せずに「ORDER BY」するとNULLのカラムは最後に表示されます。CASE WHENを利用してそれを回避します。
SQL Server

NULLの検索はIS NULL演算子を使う

SQLでNULLのカラムを含む行を検索するには「WHERE カラム名=NULL」ではなく「WHERE カラム名 IS NULL」を使います。「WHERE カラム名=NULL」では検索できません。
SQL Server

SQLServerでダミーテーブルを使ってみる

SQLServerで実際に存在するテーブルからではなく架空(ダミー)のテーブルに対してSELECTを発行することができます。このようなSQLは現在時刻を取得するときなどに便利な方法です。Oracleで現在日付けなどを取得する際に利用するダミーテーブルは「DUAL]ですが、SQLserverの場合はこれに対応するテーブルはありません。
SQL Server

SQLで月曜日始まりのカレンダー作成

SQLをうまく利用するとカレンダーを作成することができます。今回はSQL Serverで月曜日始まりの1週間分のカレンダーを作成します。
SQL Server

SQLServerでTrue,FalseのようなBoolean型をあつかう

SQLServerには「Boolean」という型はありません。Boolean型のような「true」、「false」をあつかうには「bit型」を利用します。
SQL Server

SQLServerでテーブルの存在を確認する

SQLServerでは「dbo.sysobjects」から「id」を検索することにより、そのテーブルが存在するかどうか確認することができます。
SQL Server

SQLで西暦から和暦変換を行う

SQLServerで指定された西暦の年月日を和暦の年月日に変換するSQLです。
SQL Server

テーブルにユニークインデックス(UNIQUE INDEX)を作成する

テーブルにユニークインデックス(UNIQUE INDEX)を作成する方法です。またユニークインデックス(UNIQUE INDEX)とプライマリーキーとの違いを書いています。
SQL Server

SQLServerでIDENTITYを使って自動で連番を設定する

SQLServerでカラムに自動で連番を設定するにはカラムの属性に「IDENTITY」を指定します。
SQL Server

TOP句で変数を使ってSQLを1行にする

Transact-SQL(T-SQL)のTOP句で変数を使ってSQLを1行にする
SQL Server

「INNER JOIN」「LEFT OUTER JOIN」「RIGHT OUTER JOIN」「FULL OUTER JOIN」についてまとめ

SQLでよく使う「INNER JOIN」「LEFT OUTER JOIN」「RIGHT OUTER JOIN」「FULL OUTER JOIN」についてのまとめです。
SQL Server

CASE WHEN を使って条件ごとの件数を取得する

あるテーブルに状態を表すフラグを持たせることはよくあります。その状態を条件ごとに振り分けて件数をそれぞれの件数を取得します。
SQL Server

集計関数COUNT()でのNULLの扱い

集計関数のCOUNT()は条件にマッチするレコードの件数を数えるのに使われます。注意が必要なのはNULLを含む項目とNULLを含まない項目では動作が異なります。
SQL Server

GROUP BYとHAVINGで最新日付データを取得する

社員マスタなどで最新のレコードのみをSQLで取得して利用するような場面はよくあるかと思います。そこでSQLを使って最新日付データを取得します。
SQL Server

SQLServerでDEFAULT制約付きのカラムの属性を変更する

SQLServerでDEFAULT制約付きのカラムの属性を変更する場合は、一旦付与されている制約を外してから変更しなければエラーになります。
SQL Server

SQLServerで列は既にデフォルトにバインドされています。と言われた場合の対処

SQLServerでテーブルのカラムの属性変更でデフォルト値を変更しようとすると列は既にデフォルトにバインドされています。というエラーになりました。
SQL Server

SQL_VARIANT_PROPERTYを使ってカラムの基本データ型を取得する

SQLServerのSQL_VARIANT_PROPERTYを使ってカラムの基本データ型を取得します
SQL Server

ISNULLとCOALESCEは動作が異なる

SQLServerのISNULLとCOALESCEは微妙に動作が異なるので注意が必要です。
SQL Server

CASE WHENを使ってSQLでIF文を使わずに条件を分岐する

CASE WHENを使ってSQLでIF文を使わずに条件を分岐します。複数おなじSQLを書く必要がないのでメンテナンスもやりやすくなります。
スポンサーリンク
タイトルとURLをコピーしました