LoginSignup
0
0

More than 3 years have passed since last update.

Xplentyで固定長の文字列を扱う

Last updated at Posted at 2021-04-01

今回のブログでは、Xplentyで固定長のフィールドを扱う必要がある場合のTipsについて紹介します。

固定長の文字列をフィールドごとに分割するには?

Selectコンポーネントで以下のように設定可能です。
式:Substring(フィールド,開始位置,終了位置)
使用例:
SUBSTRING('aaaaa00000あああああ11111',0,5) > 'aaaaa'
SUBSTRING('aaaaa00000あああああ11111',5,10) > '00000'
SUBSTRING('aaaaa00000あああああ11111',10,15) > 'あああああ'

固定長の文字列を生成するには?

Selectコンポーネントで以下のように設定可能です。
式:SPRINTF('%08d',数値)
使用例:

結果 説明
SPRINTF('%08d',1) 00000001 8桁 (左を桁数分0で詰める)
SPRINTF('%05d',10)` '00010' 5桁 (左を桁数分0で詰める)
SPRINTF('%5s','あ') '____あ' 5桁 (左を桁数分半角スペースで詰める)
SPRINTF('%-10s','あ') 'あ_________' 10桁 (右を桁数分半角スペースで詰める)

例外: 「1」 > 「10000」のように右にゼロを追加して詰めることはできません。
数値を桁数に応じて10,100,1000、10,000倍するなどの対応が必要です。

また、もし想定している桁数を超えたデータが入ってくるような場合、CASE文とLength関数、SUBSTRING関数を使用して、超過分の文字列を切り捨てることができます。
5桁を超える場合の制御例:
CASE WHEN Length(field1) > 5 THEN SPRINTF('%-5s'(SUBSTRING(field1,0,5)) ELSE SPRINTF('%-5s',field1) END

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0