kikukawa's diary

都内で活動するシステムエンジニアが書いてます。 興味を持った技術やハマったポイント、自分用メモをつけてます。 最近はweb中心

SQL

AccessでIF

毎回調べているのでメモ SELECT IIF(ISNULL(code),'-',code) FROM hoge

PostgresでPrimaryKeyの変更

Postgres PRIMARY KEY 変更毎回調べているので、自分用メモPRIMARY KEYの削除 ALTER TABLE table DROP CONSTRAINT table_pkey; PRIMARY KEYの作成 ALTER TABLE table ADD CONSTRAINT table_key PRIMARY KEY(field1, field2); 引用元サイト http://yassu.jp/p…

テーブル定義SQL

SQL

毎回調べているのでメモ --テーブルの追加 create table hoge ( a VARCHAR(8) NOT NULL, b VARCHAR(3) NOT NULL, c VARCHAR(30), primary key (a,b) ) --カラムの追加 --oracle --oracleでは括弧で括る必要がある alter table hoge add (a int) --postgres,m…

DISTINCT と GROUP BY

SQL

DISTINCT と GROUP BYGROUP BYのほうが早いらしい。本来の意味ではDISTINCTを使うのが正しいけど、 パフォーマンスが少しでも求められる状況ならGROUP BY参考サイト http://csharp.yaminabe.info/2007/03/distinct_group_by.html

Postgres日付の演算

postgres日付の演算 select current_timestamp + '1 days'; 減算したいときは、数値を-にする。 daysのところは他に years months weeks が使える

カラムのコメントを取得するSQL

SqlServer カラムのコメントを取得するSQL SELECT T.NAME AS TABLE_NAME, C.NAME AS COLUMN_NAME, EP.VALUE AS COMMENT FROM SYS.TABLES T, SYS.COLUMNS C, SYS.EXTENDED_PROPERTIES EP WHERE T.NAME = 'TEST_TABLE' AND T.OBJECT_ID = C.OBJECT_ID AND C.OB…

テーブルのコメントを取得するSQL

SqlServer テーブルのコメントを取得するSQL SELECT T.NAME AS TABLE_NAME, EP.VALUE AS COMMENT FROM SYS.TABLES T, SYS.EXTENDED_PROPERTIES EP WHERE T.NAME = 'TEST_TABLE' AND T.OBJECT_ID = EP.MAJOR_ID AND EP.MINOR_ID = 0 ;

Where句で 年月を条件にする

datetime型のカラムに対して、YYYYMMで条件を絞りたいときは以下のようにする WHERE SUBSTRING(CONVERT(varchar, YMD, 112), 1, 6) = '200806'

カラム名をSQLで取得

カラム名をSQLで取得する方法 SELECT T.NAME, C.NAME FROM SYS.TABLES T, SYS.COLUMNS C WHERE T.NAME = 'テーブル名' AND T.OBJECT_ID = C.OBJECT_ID

全角スペースの検索

全角スペースを条件に検索する場合 WHERE hoge LIKE '% %' COLLATE Japanese_CS_AS_KS_WS

Select文からのUpdate

SQL

SelectからUpdateSQLServer UPDATE testTBL1 SET clm1= tbl2.clm1 FROM testTBL1 tbl1 JOIN testTBL2 tbl2 ON ( tbl1.Key1 = tbl2.Key1 ) WHERE ( tbl1.Key1 Like '%' ) AND ( tbl2.Key1 Like '%' )Oracle UPDATE ( SELECT tbl1.Key1 tbl1_Key1 , tbl1.clm1 …

SQLSERVER 月の取得

select datename(month,getdate())

SQL Serverの日付の形式

SQL Server 日付型データのフォーマット既定 SELECT CONVERT(VARCHAR,GetDate()) --08 27 2008 2:53PM SELECT CONVERT(VARCHAR,GetDate(), 1) --02/11/07 SELECT CONVERT(VARCHAR,GetDate(), 2) --07.02.11 SELECT CONVERT(VARCHAR,GetDate(), 3) --11/02/07…