SQL句メモ
共通
基本
SELECT
*
FROM テーブル1 A
WHERE A.カラム1 = :PARA1
AND A.カラム2 = :PARA2
ORDER BY
A.カラム1
,A.カラム2
サブクエリ
from テーブル1 A
--履歴・氏名
LEFT OUTER JOIN テーブル2 B
ON A.カラム1 = B.カラム1
AND A.カラム2 = B.カラム2
間の値を取得
from テーブル1 A
where :IDO_DT BETWEEN A.カラム3 AND A.カラム4
from テーブル1 A
where A.カラム3 BETWEEN :VAL_FROM AND :VAL_TO
LIKE記述
SELECT ENAME
FROM EMP
WHERE ENAME LIKE '%A%'
%(パーセント) :任意の文字列
_(アンダーバー):任意の一文字
ROW_NUMBER
select
ROW_NUMBER() over( order by A.INNOXXX ) as row_number
,A.*
from TBL_XXXX A
CASE文・式
CASE式
CASE 条件
WHEN 条件の値 THEN 設定値
WHEN 条件の値 THEN 設定値
ELSE 設定値
END
CASE文
CASE
WHEN 条件式 THEN 設定値
WHEN 条件式 THEN 設定値
ELSE 設定値
END CASE
ORACLE
日付変換
to_date('2011/12/15','YYYY/MM/DD')
ダミー領域
select 'dammytest'
from dual
テーブル一覧抽出
テーブル一覧抽出
select
A.TABLE_NAME
,B.TABLE_TYPE
,B.COMMENTS
from USER_TABLES A
LEFT OUTER JOIN USER_TAB_COMMENTS B
ON A.TABLE_NAME = B.TABLE_NAME
order by A.TABLE_NAME
テーブル一覧
select *
from USER_TABLES
テーブルのコメント一覧
select *
from USER_TAB_COMMENTS
テーブルカラムの内容抽出
カラム一覧(抽出)
select
A.COLUMN_ID
,A.TABLE_NAME
,A.COLUMN_NAME
,A.DATA_TYPE
,A.DATA_LENGTH
,A.NULLABLE
,B.COMMENTS
-- ,A.*
from USER_TAB_COLUMNS A
left outer join USER_COL_COMMENTS B
ON A.TABLE_NAME = B.TABLE_NAME
AND A.COLUMN_NAME = B.COLUMN_NAME
where A.TABLE_NAME='TBL_XXXX'
order by A.COLUMN_ID
カラム一覧
select A.*
from USER_TAB_COLUMNS A
where A.TABLE_NAME='TBL_XXXX'
カラムのコメント一覧
select A.*
from USER_COL_COMMENTS A
where A.TABLE_NAME='TBL_XXXX'
ロール一覧
select * from SYS.DBA_ROLES
インデックス一覧
select * from USER_INDEXES
インデックス一覧[対象カラム]
select * from USER_IND_COLUMNS
SQL SERVER
テーブル作成・削除
-- テーブル削除
drop table [dbo].NewTeble;
----------------------------------------
--*dataTitle 事業区分利用集計テーブル作成
----------------------------------------
create table [dbo].NewTeble (
Col1 decimal(2, 0) not null
, Col2 decimal(2, 0) not null
, Col3 decimal(1, 0) not null
, Col4 decimal(2, 0) not null
, Col5 decimal(3, 0)
, Col6 decimal(3, 0)
, primary key (Col1,Col2,Col3,Col4)
);
テーブルを利用してのINSERT文
-- 一括削除(TRUNCATE削除)
TRUNCATE TABLE NewTeble;
-- INSERT
INSERT INTO NewTeble(
Col1 ,Col2,ol3, Col4, Col5,Col6
)
select
TCol1,TCol2,TCol3,TCol4,TCol5,Count(*) as Col6
from
T_Teble
group by
TCol1,TCol2,TCol3 ,TCol4,TCol5
;
ダミー領域
select 'dammytest'
--from dual
パラメータ設定(SQLServer)
DECLARE @TODAY date = Getdate() ;
DECLARE @GRP_CD varchar(7) = '0822100' ;
select @today,@GRP_CD
一覧表示
全オブジェクトのテーブルの一覧
-- 全オブジェクトのテーブルの一覧を取得するSQL
SELECT * FROM sys.tables
;
全オブジェクトのカラム一覧
-- 全オブジェクトのカラム一覧を取得するSQL
SELECT * FROM sys.columns
;
参考サイト
[[SQL] データベース | TECHSCORE(テックスコア) ]
(http://www.techscore.com/tech/sql/index.html/)