SQL一般
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
] [
Twitter
]
開始行:
→[[データベース関連]]
→SQL関連メモ(Oracle)
→T-SQL関連メモ
#contents
*一般 [#sc7d5bfb]
-[[より信頼できるクエリを書くために、SQLでもテストを書く ...
-[[実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial - S...
-[[無料で学ぶ『達人に学ぶSQL徹底指南書 第1版』 #SQL - Qii...
-[[エンジニアなら解けるかも?プログラミング経験ゼロでもSQ...
--[[高難度SQL問題の解答例公開!『エンジニア騎士とクエリの...
-[[500ページ超えの新刊『わかりみSQL』を支える技術>https:/...
-[[SQL本三大対決>http://blog.livedoor.jp/dankogai/archive...
-[[SQLクリニック@IT:http://www.atmarkit.co.jp/fdb/index/i...
*Tips [#m47a0472]
-[[MySQL8.0のWindow関数を分かりやすく紹介する(1) ̵...
-[[注意!DBのインデックスが効かなくなるSQL | SIOS Tech. L...
-user_idで先頭2桁に'00'がついているものからそれを除去する例
UPDATE m_user SET user_mst = SUBSTRING(user_id, 3) WHERE...
-[[実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial - S...
-[[リーダブルSQL[より良いSQLを書くためのシンプルで実践的...
-[[【備忘録】MySQLでGROUP BYとサブクエリを使った話 - Qiit...
--ウィンドウ関数
-[[SQLのマージ(MERGE)文を使ってみよう!INSERTまたはUPDATE...
-[[競走馬の血統をSQLで再現できる! 再帰クエリ徹底活用して...
-[[【SQL Server】改行コードを取得・置換・更新する | SQLSe...
-[[SQLでグループごとに最大のレコードを取得する ROW_NUMBE...
-[[SQL改善で処理時間を約98%カットできた話 - Qiita>https:/...
--条件内にほとんどあるものを探すより、条件を反転させて「...
-[[【SQL】SELECT文の実行結果もっと見やすくならないですか...
--構文の違いは、;(セミコロン) を \G に変えるだけ!
-[[How to Update from Select in SQL - Database Star>https...
-[[各社員が所属している複数の部署の部署コードをすべて取得...
--MySQLならGROUP_CONCAT()を使う
--SQL Server ならSTRING_AGG() が同等の機能として使える ※[...
SELECT [対象年],[対象月],[社員番号],[氏名],
STRING_AGG ( [JOBNo.], ',') as JOBNo
FROM [xxxDB].[dbo].[t0004_外注一覧] t1
left join t0001_案件_売上項目 t2 on t1.社員番号=t2.商品...
where 対象年=2022 and 対象月=9
group by 対象年, 対象月, 社員番号, 氏名
-[[SQL基礎!! 指摘ビフォーアフター(研修、レビュー、SELECT...
-[[FastAPI SQLModel 入門 - Qiita>https://qiita.com/sand/i...
-[[[SQL Server] 縦に並んだデータを横にカンマ区切りの列デ...
-[[SQL Serverで取得結果行を1列に連結するSQL(FOR XML PATH)...
-[[縦に並んだ複数行のデータをカンマ区切りで横並びに表示 |...
-[[WHERE 条件のフィールドを UPDATE するのって,明示的にロ...
-[[EXISTSとSQLの高速化について>http://kkoudev.github.io/b...
--[[SQL テーブル参照先の条件句 JOIN vs EXISTS>http://tote...
---こちらはEXISTSの方が速くなるケース
-[[WITH句で変換後に目的のテーブルへINSERT SELECTしてみた ...
-[[WITH句を使い重複するSQL文をまとめる方法>http://omachiz...
-SELECTしたレコードをUPDATE/DELETEする場合、最初に
SELECTするときにROWIDを取得しておいてキーにすると速く処理...
-DECODEや CASE WHEN 式でSQLを一つにまとめられるならしたほ...
-HAVING句による絞り込みをする前にwhere句による絞り込みを...
--良い例
SELECT job, AVG(uriage) from emp
where job IN ('A','B', ...) group by job;
--悪い例
SELECT job, AVG(uriage) from emp
group by job having job IN ('A','B', ...) ;
--先に絞り込んでから集計する方がパフォーマンスが良い
-レコードを毎回ランダム順に取得
select newid() nid,* from <hoge> order by nid
-抽出結果からテーブル作成
select * into <hoge> from <hage>
-抽出結果を既存テーブルにインサート
insert into <hoge> select * from <hage>
<hoge>と<hage>の項目が合っていることが前提。values()や項...
-[[Having句の力>http://codezine.jp/a/article/aid/652.aspx]]
-[[SQLの日付処理関数>http://www.atmarkit.co.jp/fdb/rensai...
-[[SQLで数列を扱う>http://codezine.jp/a/article/aid/1076....
-[[SQL for practitioners:http://www.geocities.jp/mickinde...
--2つのテーブルのコンペア→どこが一致してないのか特定する...
--完全外部結合(2つ以上のマスタで外部結合する FULL OUTER...
--リスト比較
-[[自己結合の使い方:http://codezine.jp/a/default.aspx?cid...
-[[CASE式のすすめ:http://codezine.jp/a/article.aspx?aid=4...
-[[三値理論とNULL:http://codezine.jp/a/article.aspx?aid=5...
*文字列の中に数字以外の文字があるかどうかで絞り込みたい [...
-Oracleならtranslate()関数で英字を''に変換して長さが変わ...
-SQL Serverにはtranslate()がないので↓のようにする
len(
replace(replace(replace(replace(replace(replace(replace(...
replace(kekka,'0', '') , '1', ''), '2', ''),'3',''), '4'...
) > 0
-参考:http://otn.oracle.co.jp/cgi-bin/non/msgview_r.cgi?...
*関連サイト [#g6c102a0]
-[[SQLBolt - Learn SQL - Introduction to SQL>https://sqlb...
-[[Poor SQL>http://poorsql.com/]]
--SQLのフォーマットをしてくれるサイト
-[[ブラウザでRMDB別のSQLを実行できる「SQL Fiddle」 │ Web...
終了行:
→[[データベース関連]]
→SQL関連メモ(Oracle)
→T-SQL関連メモ
#contents
*一般 [#sc7d5bfb]
-[[より信頼できるクエリを書くために、SQLでもテストを書く ...
-[[実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial - S...
-[[無料で学ぶ『達人に学ぶSQL徹底指南書 第1版』 #SQL - Qii...
-[[エンジニアなら解けるかも?プログラミング経験ゼロでもSQ...
--[[高難度SQL問題の解答例公開!『エンジニア騎士とクエリの...
-[[500ページ超えの新刊『わかりみSQL』を支える技術>https:/...
-[[SQL本三大対決>http://blog.livedoor.jp/dankogai/archive...
-[[SQLクリニック@IT:http://www.atmarkit.co.jp/fdb/index/i...
*Tips [#m47a0472]
-[[MySQL8.0のWindow関数を分かりやすく紹介する(1) ̵...
-[[注意!DBのインデックスが効かなくなるSQL | SIOS Tech. L...
-user_idで先頭2桁に'00'がついているものからそれを除去する例
UPDATE m_user SET user_mst = SUBSTRING(user_id, 3) WHERE...
-[[実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial - S...
-[[リーダブルSQL[より良いSQLを書くためのシンプルで実践的...
-[[【備忘録】MySQLでGROUP BYとサブクエリを使った話 - Qiit...
--ウィンドウ関数
-[[SQLのマージ(MERGE)文を使ってみよう!INSERTまたはUPDATE...
-[[競走馬の血統をSQLで再現できる! 再帰クエリ徹底活用して...
-[[【SQL Server】改行コードを取得・置換・更新する | SQLSe...
-[[SQLでグループごとに最大のレコードを取得する ROW_NUMBE...
-[[SQL改善で処理時間を約98%カットできた話 - Qiita>https:/...
--条件内にほとんどあるものを探すより、条件を反転させて「...
-[[【SQL】SELECT文の実行結果もっと見やすくならないですか...
--構文の違いは、;(セミコロン) を \G に変えるだけ!
-[[How to Update from Select in SQL - Database Star>https...
-[[各社員が所属している複数の部署の部署コードをすべて取得...
--MySQLならGROUP_CONCAT()を使う
--SQL Server ならSTRING_AGG() が同等の機能として使える ※[...
SELECT [対象年],[対象月],[社員番号],[氏名],
STRING_AGG ( [JOBNo.], ',') as JOBNo
FROM [xxxDB].[dbo].[t0004_外注一覧] t1
left join t0001_案件_売上項目 t2 on t1.社員番号=t2.商品...
where 対象年=2022 and 対象月=9
group by 対象年, 対象月, 社員番号, 氏名
-[[SQL基礎!! 指摘ビフォーアフター(研修、レビュー、SELECT...
-[[FastAPI SQLModel 入門 - Qiita>https://qiita.com/sand/i...
-[[[SQL Server] 縦に並んだデータを横にカンマ区切りの列デ...
-[[SQL Serverで取得結果行を1列に連結するSQL(FOR XML PATH)...
-[[縦に並んだ複数行のデータをカンマ区切りで横並びに表示 |...
-[[WHERE 条件のフィールドを UPDATE するのって,明示的にロ...
-[[EXISTSとSQLの高速化について>http://kkoudev.github.io/b...
--[[SQL テーブル参照先の条件句 JOIN vs EXISTS>http://tote...
---こちらはEXISTSの方が速くなるケース
-[[WITH句で変換後に目的のテーブルへINSERT SELECTしてみた ...
-[[WITH句を使い重複するSQL文をまとめる方法>http://omachiz...
-SELECTしたレコードをUPDATE/DELETEする場合、最初に
SELECTするときにROWIDを取得しておいてキーにすると速く処理...
-DECODEや CASE WHEN 式でSQLを一つにまとめられるならしたほ...
-HAVING句による絞り込みをする前にwhere句による絞り込みを...
--良い例
SELECT job, AVG(uriage) from emp
where job IN ('A','B', ...) group by job;
--悪い例
SELECT job, AVG(uriage) from emp
group by job having job IN ('A','B', ...) ;
--先に絞り込んでから集計する方がパフォーマンスが良い
-レコードを毎回ランダム順に取得
select newid() nid,* from <hoge> order by nid
-抽出結果からテーブル作成
select * into <hoge> from <hage>
-抽出結果を既存テーブルにインサート
insert into <hoge> select * from <hage>
<hoge>と<hage>の項目が合っていることが前提。values()や項...
-[[Having句の力>http://codezine.jp/a/article/aid/652.aspx]]
-[[SQLの日付処理関数>http://www.atmarkit.co.jp/fdb/rensai...
-[[SQLで数列を扱う>http://codezine.jp/a/article/aid/1076....
-[[SQL for practitioners:http://www.geocities.jp/mickinde...
--2つのテーブルのコンペア→どこが一致してないのか特定する...
--完全外部結合(2つ以上のマスタで外部結合する FULL OUTER...
--リスト比較
-[[自己結合の使い方:http://codezine.jp/a/default.aspx?cid...
-[[CASE式のすすめ:http://codezine.jp/a/article.aspx?aid=4...
-[[三値理論とNULL:http://codezine.jp/a/article.aspx?aid=5...
*文字列の中に数字以外の文字があるかどうかで絞り込みたい [...
-Oracleならtranslate()関数で英字を''に変換して長さが変わ...
-SQL Serverにはtranslate()がないので↓のようにする
len(
replace(replace(replace(replace(replace(replace(replace(...
replace(kekka,'0', '') , '1', ''), '2', ''),'3',''), '4'...
) > 0
-参考:http://otn.oracle.co.jp/cgi-bin/non/msgview_r.cgi?...
*関連サイト [#g6c102a0]
-[[SQLBolt - Learn SQL - Introduction to SQL>https://sqlb...
-[[Poor SQL>http://poorsql.com/]]
--SQLのフォーマットをしてくれるサイト
-[[ブラウザでRMDB別のSQLを実行できる「SQL Fiddle」 │ Web...
ページ名: