Technical Articles
HANA SQL Snippets(検証時にたまに使うSQL)
HANAで検証時によく使うSQL。たまにしか使わず、すぐ忘れるため、メモしておきます。
Select と Insert
SOURCE_TABから抽出してそのままTARGET_TABへINSERT
INSERT INTO TARGET_TABL( SELECT * from SOURCE_TAB)
大量データ挿入
大量データを挿入するときに使います。System View の objectsをクロスジョインすることで8000万件くらいまで挿入できます。項目は乱数を入れています。
DROP TABLE "TEST_TAB";
CREATE COLUMN TABLE "TEST_TAB" ("Id" INTEGER,
"fld001" INTEGER,
"fld002" INTEGER,
"fld003" INTEGER);
insert into "TEST_TAB" (
select top 100000
CAST(ROW_NUMBER() OVER() AS INTEGER) AS "Id",
round(rand(), 0, ROUND_HALF_UP) as "fld001",
round(rand()*100, 0, ROUND_HALF_UP) as "fld002",
round(rand()*30000, 0, ROUND_HALF_UP) as "fld003"
from objects cross join objects
);
WITH構文
WITHを使って柔軟なSQL書けます
with X as (select id
from TEST1)
select id
from X
重ねて書く場合(直列)
WITH y
AS (WITH x
AS (SELECT id
FROM test1)
SELECT id
FROM x)
SELECT id
FROM y
重ねて書く場合(並列)。確認していないけどあっているはず。ちなみにここのyのSQLのソーステーブルにtest1を使うことができます。
WITH x
AS (SELECT id
FROM test1),
y
AS (SELECT id
FROM test2)
SELECT x.id
FROM x
INNER JOIN y
ON x.id = y.id
テーブル定義コピー
LIKEオプションを使ってテーブル定義をコピー。検証時によくやります。”WITH DATA” オプションをつければ、データもコピーしてくれます。
CREATE TABLE "TARGET_TAB" LIKE "SOURCE_TAB";
Python使えるならばhana_mlパッケージを使うのもおすすめです。
以下のノートに参考になるSQLが詰まっています。
1969700 – SQL Statement Collection for SAP HANA
Be the first to leave a comment
You must be Logged on to comment or reply to a post.