AS400とOracle違いなんだこりゃ。Oracle12cSQLを一生懸命勉強したのにAS400で使えない命令があるなんて聞いてねーぞ。いうことで、少しだけ調べてみたけど、人様に見せるように作っていない。自分用だけどこれで完成では全くないが、いろんな勉強に手を広げ過ぎてもう次の更新がいつになるか解らない。Oracle白本と同じようにemployeesテーブルを作る。NUMERIC(2));1001佐藤社長から1014佐々木までDFUで放り込んでいく。DUALが使えないので、ダミーのテーブル作り。ORACLEはVARCHAR2(1)だが、使えないので下記にした。VARCHAR(1));1件だけデータを放り込む。HOGELIB.DUALからのOracleと同じようにXを入力。使えない%で余りを計算することはできない。これはOracleも同じ。使える別名の指定はASや””がなくても指定できる。””がなければ全て大文字になる。HOGELIB.DUAL;NULLの表示?AS400はあまりNULLを聞かないというか嫌うせいか、NULLは自動で0が補完されるようだ。SAL+COMMで、COMMがNULLでも0が入っている。//複数列の組み合わせによる重複行の削除も使える。並びが少しおかしい気がする。HOGELIB.EMPLOYEES;//複数列の組み合わせによる重複行の削除も使える。並びが少しおかしい気がする。使えるOracleと同じで引数は2つまで。||(パイプ)使えるCONCATは2つの文字連結だけ。3つ以上はパイプを使う。使える何文字目から何文字文の文字列を戻す。使える文字数というかバイト数をシフト文字ごとカウントしてくれるみたい。使える*以前のIBMiでは使えなかったが使えるようになった。使える第2引数を文字数、第3引数に桁埋め文字を指定すると、第2引数の合計桁数になるように左か右に第3引数の文字を埋め込む。*以前のIBMiでは使えなかったが使えるようになった。使える第1引数の中に、第2引数の文字があった場合、第3引数の文字に置き換える。使える月日をDATE型ではなく数値や文字型で定義しているとき、和暦(YEAR)と月(MONTH)をつなげて2801などとしたいとき、281と表示されてしまう。OracleならTO_CHAR(MONTH,’00’)でいいが、AS400の場合は、DIGITS(MONTH)とする。引数は与えられないので桁はデータ型の桁数になるみたい。できるOracleと同じで””で指定した場合は、””で指定する。1を指定したら1行飛ばすので2行目から抽出することになる。*以前のIBMiでは使えなかったが使えるようになった。使える抽出する行数を指定できる。