Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
Fukuhara
Product and Topic Expert
Product and Topic Expert
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