Today: Yesterday: Total: Online:
カテゴリー
その他
  • RSS1.0
  • RSS2.0
  • atom0.3
  • valid XHTML1.0
  • valid CSS2
  • Credit
RSSリーダーで購読する | この日記のはてなブックマーク数 | プロフィール
コメントが一番多い記事(233コメント):人の心理の裏をかくホームページ集客術:リピータになってもらうためには
ツイートが一番多い記事(94ツイート):ちょっと待て!twitterやfacebookに子供の写真を掲載する親達への警告
いいねが一番多い記事(574いいね):facebookスパムに要注意。なりすましの見分け方とアカウント乗っ取りの手口(2013年度版)

[ カテゴリー » SQL ]

カテゴリー » SQL June 13, 2019

SQL serverでランダムな数字を振る ID:1560408496


https://qiita.com/yfujii01/items/a6f1d8a8cf69b0c4e291

1〜100なら以下
CONVERT(int,(1 + (RAND(CONVERT(INT, CONVERT(VARBINARY(4), NEWID()))) * (100 - 1 + 1))))

ただし、都度ランダムにふられるので、ばらつきが出る

— posted by midilin @ 03:48PM | Comment (0)

カテゴリー » SQL May 29, 2019

縦横変換SQL2 ID:1559090308


----------------
id,col1,col2
----------------
1,a,NULL
1,NULL,b
----------------

----------------
id,col1,col2
----------------
1,a,b
----------------

にするには
----------------------------

select
a.id,
a.col1,
b.col2
from
ta2 a
inner join
ta2 b
on a.id = b.id
where
a.col1 is not null
and
b.col2 is not null
----------------------------

また

----------------
id,col1,col2
----------------
1,a,NULL
1,NULL,b
2,c,null
3,null,d
----------------

----------------
id,col1,col2
----------------
1,a,b
2,c,null
3,null,d
----------------

とするには

---両方カラムがあるフィールドを抽出
select
a.id,
a.col1,
b.col2
from
ta2 a
inner join
ta2 b
on a.id = b.id
where
a.col1 is not null
and
b.col2 is not null

union all
--col1だけあるフィールドを抽出
select
a.id,
a.col1,
b.col2
from
ta2 a
inner join
ta2 b
on a.id = b.id
where
a.col1 is not null
and
a.id not in
(
select
a.id
from
ta2 a
inner join
ta2 b
on a.id = b.id
where
a.col1 is not null
and
b.col2 is not null
)
union all
--col2だけあるフィールドを抽出
select
a.id,
a.col1,
b.col2
from
ta2 a
inner join
ta2 b
on a.id = b.id
where
b.col2 is not null
and
a.id not in
(
select
a.id
from
ta2 a
inner join
ta2 b
on a.id = b.id
where
a.col1 is not null
and
b.col2 is not null
)

— posted by midilin @ 09:38AM | Comment (0)

カテゴリー » SQL April 22, 2019

結合キーを持たない、テーブル同士のすべての組み合わせのSQLの書き方 ID:1555909300


テーブルA、カラムID1
テーブルB、カラムID2

を持つ、すべてのレコードの組み合わせ(結合キー無)

select
tableA.ID1,tableB.ID2
from
tableA
cross join
tableB

— posted by midilin @ 02:01PM | Comment (0)

カテゴリー » SQL February 27, 2019

SQL serverのフリー版 SQL Server Expressのメモ書き ID:1551260550


SQL Server Expressとは?概要・有償版との違いについて徹底解説!
https://www.sejuku.net/blog/74368
開発用、学習用として使える

https://www.sejuku.net/blog/74068
導入方法

GUI(Manegement Studio)を使ったテーブルの作成方法

SQL Server Management StudioでExcelファイルのデータをインポートする方法
https://qiita.com/speedstar18fct/items/ce0772e825b0d5cc6e91
コピペでインポートができるとのこと

— posted by midilin @ 06:42PM | Comment (0)

カテゴリー » SQL November 16, 2018

縦横変換SQL ID:1542352633


元table
----------------
id,col
----------------
1,a
1,b
----------------

これを
----------------
id,col1,col2
1,a,b
----------------

にする

select
a.id,
a.col as col1,
b.col as col2
from
ta a
inner join
ta b
on a.id = b.id
where
a.col = "a"
and
b.col = "b"






ちなみに、横→縦はUNION使う

https://qiita.com/k24d/items/79bc4828c918dfeeac34

Unpivotの

SELECT uid, 'c1' AS key, c1 AS value FROM htable
UNION ALL
SELECT uid, 'c2' AS key, c2 AS value FROM htable
UNION ALL
SELECT uid, 'c3' AS key, c3 AS value FROM htable
;
uid key value
--- --- -----
101 c1 11
102 c1 21
101 c2 12
102 c2 22
101 c3 13
102 c3 23

— posted by midilin @ 04:17PM | Comment (0)

カテゴリー » SQL » PL/SQL January 27, 2011

FETCHとは ID:1296088050


FETCHとは「取り出す」ということ。
カーソルのときに使用する。

— posted by midilin @ 09:27AM

カテゴリー » SQL » PL/SQL January 27, 2011

PL/SQL ネストしたループ文から脱出する ID:1296087551


ラベルを指定して、ラベル EXITを使う

ラベルは<<>>で定義する。



例)

<<LOOP1>>

FOR i IN 1..10 LOOP

<<LOOP2>>

FOR j IN 1..10 LOOP

<LOOP3>

FOR k IN 1..10 LOOP

SELECT COUNT(*) INTO ctr WHELE ...

.....



EXIT LOOP2;---ラベルを指定して、LOOP3からLOOP2に脱出

END ROOP3;

END ROOP;

-- EXIT LOOP2とするとここにとぶ

END LOOP;

— posted by midilin @ 09:19AM

カテゴリー » SQL » PL/SQL January 27, 2011

PL/SQL パッケージ PACAGE BODY ID:1296087242


パッケージとは、プロシージャやファンクションをまとめたもの
パッケージは、仕様部と実装部からなる

仕様部はC言語のヘッダファイルのように、関数の引数と戻り値だけを定義する。
ファンクションやプロシージャの中身は、別途実装部のPACAGE BODYに定義する。

利用者は仕様部さえ変わらなければ、ファンクションやプロシージャの実装がどうなっていても
自分のコードがかけ、実装部(PACAGE BODY)ができていなくても、コンパイルができる

— posted by midilin @ 09:14AM

カテゴリー » SQL » PL/SQL January 27, 2011

プロシージャの作成 ID:1296087014


CREATE OR REPLACE PROCEDURE プロシージャ名(引数) IS PL/SQLブロック;

OR REPLACEは最初の一回は不要だが、変更時にDROP PROCEDUREをしなくてすむ

— posted by midilin @ 09:10AM

カテゴリー » SQL » PL/SQL January 27, 2011

コンポジット型 配列 PL/SQL ID:1296086762


例)
DECLARE
--varchar2(32)の索引を持つ、varchar2(15)の索引付きのhosttable_typeの宣言:15は、ipが3桁×4+ドットが3個
TYPE hosttable_type IS TABLE OF VARCHAR2(15) INDEX BY VARCHAR2(32);
--hosttable_typeを宣言
host_table hosttable_type;
ip_address VARCHAR2(15);
BEGIN
host_table('dbserver1') := '192.168.0.1';
host_table('dbserver2') := '192.168.0.2';
ip_address := host_table('dbserver1');--192.168.0.1が返却される

— posted by midilin @ 09:06AM


カウンター