いろいろ備忘録日記

主に .NET とか Java とか Python絡みのメモを公開しています。

sql

SQLServerのFORMAT関数にハマったのでメモ (2008 R2では使えない)

SQLServerのFORMAT関数にハマったので、忘れないうちにメモメモ。 このFORMAT関数なんですが、MSDNを見ると FORMAT Function (DAX) となっています。パッとみると 2008 R2 2012 2014 と見えるので、2008 R2でもサポートされていると思ってしまいます。 (思…

SQLでCSV形式のデータの個数を数える

忘れない内にメモメモ。 元のデータがとある列に a,b,c,e,d,f みたいな感じで入っている場合 こんな感じで個数を取得できる。 SELECT COALESCE( MAX( (LENGTH(対象列) - COALESCE(LENGTH(REPLACE(対象列, ',')), 0)) + 1 ) ,0 ) AS count FROM XXXX REPLACE…

オラクルでの定義情報の取得 (テーブル定義, カラム定義など)(oracle, user_tables, user_tab_columns, user_views, user_synonyms, user_sequences, user_procedures, user_source)

忘れない内にメモメモ。 [テーブル定義] /* テーブル定義情報を取得 */ SELECT SYS_CONTEXT('USERENV', 'DB_NAME') AS db_name ,USER AS schema_name ,tbls.TABLE_NAME AS table_name ,comments.TABLE_TYPE AS table_type ,comments.COMMENTS AS table_comme…

プライマリーキー(PK)とユニークキー(UQ)の定義情報を取得 (sys.key_constraints, sys.index_columns, sys.tables, sys.columns)

プライマリーキーとユニークキーの定義情報の取得方法です。 忘れないうちにメモメモ。ついでに、先日のカラム定義を取得するSQLにも 組み込んでおきました。 [プライマリーキー情報] SELECT tbls.name AS table_name ,key_const.name AS constraint_name ,i…

シノニム、プロシージャとファンクションの定義情報を取得 (sys.synonyms, sys.procedures, sys.objects, sys.sql_modules)

ついでに、シノニムとプロシージャとファンクションの定義情報の取得方法をメモメモ。 [シノニム] USE AdventureWorks GO /* シノニムの定義を取得 */ SELECT DB_NAME() AS db_name ,SCHEMA_NAME(synonyms.schema_id) AS schema_name ,synonyms.name AS syno…

テーブルとビューの定義情報を取得 (sys.tables, sys.columns, sys.objects, sys.extend_properties, sys.constraints, sys.default_constraints)

前に、テーブルとカラムの説明を取得するSQLを書いていたのですが、説明プラス定義情報を いろいろ取得するSQLです。自分自身が忘れない内にメモメモ。 SqlServerにてテーブルとカラムの説明を取得するSQL (sys.tables,sys.columns,sys.extended_prope…

ビューとトリガーの定義の取得 (sys.objects, sys.sql_modules, sys.views, sys.triggers)

忘れない内にメモメモ。 SQLServerにて、ビューとトリガーの定義の取得方法です。 もっといいやり方知っている方いらっしゃったら教えてください。m(_ _)m [ビュー] USE AdventureWorks GO /* ビューの定義を取得 */ SELECT (schemas.name + '.' + views.nam…

分析関数の衝撃 By CodeZine (SUM, MAX, MIN, OVER, PARTITION BY)

なんで、もっと早くこれを見ていなかったんだと後悔中・・・w 目から鱗でした。URL忘れないためにメモメモ。 分析関数の衝撃(前篇) http://codezine.jp/article/detail/1269 分析関数の衝撃(中篇) http://codezine.jp/article/detail/1298 分析関数の衝撃(…

ROLLUPとCUBE (Oracle, SQLServer, GROUP BY, GROUPING, GROUPING SETS, 小計, 総合計)

便利な機能なのは、分かっているのについつい忘れてしまうので、メモメモ。 意外に結構しらない人も多いのではないのでしょうかこれ。 SQLで小計や総合計を求める時に、GROUP BYを利用することが多いと思いますが GROUP BYには更に小計と総合計を求めるオプ…

General SQL Parser

sql

SQLの構文解析及び整形などを行なってくれるライブラリみたいです。 商用製品ですが、結構安い(約$79)。 一旦、トライアルをダウンロードして試してみる価値はありかもしれませんね。 一応メモメモ。 General SQL Parser http://www.sqlparser.com/index.php…

SqlServerにてテーブルとカラムの説明を取得するSQL (sys.tables,sys.columns,sys.extended_properties)

普段はオラクルとMySQLを主に使っているので、SqlServerで上記の事をやるのに どうやるのかなかなか分かりませんでした。(泣 SqlServerの場合、オラクルのようにALL_COL_COMMENTSみたいなビューで 一発で取得できるのかと思っていましたら実際には以下のテ…

階層問い合わせ(start with connect by)

たまに、忘れるのでメモ。 oracleで階層構造を手繰るには、connect byを使用します。 たとえば、組織情報を下って表示する場合などが、当てはまります。 以下サンプル。 create table test_table( id int primary key ,name varchar(100) not null ,parent_i…