最もよく使用される 30 個の Analytics 関数
ACLScript の上位 30 の関数は、さまざまなタスクで役に立ちます。 これらの関数を定期的に使用し、スクリプトでデータを準備、解析、変換、および調整できます。
先頭と末尾のスペースを削除する
Analytics 関数 テーブルの文字フィールドは、一般的に、フィールド幅が固定長であるため、先頭または末尾にスペースがあります。 文字フィールドからのデータを使用して演算を実行する必要があるときには、これらのスペースを削除し、文字列に実際のデータのみが含まれるようにします。
ALLTRIM( )
入力文字列から先頭と末尾のスペースを除去した文字列を返します。
メモ
別の関数の入力として使用しているフィールドで ALLTRIM() を使用し、先頭または末尾のスペースが返される値に影響しないようにすることをお勧めします。
例
Vendor_Number フィールドには値 " 1254" があります。 Vendor_Number からこの余分なスペースを削除し、フィールドを別のテーブルのデータと一致させる必要があります。
COMMENT "1254" を返します ALLTRIM(Vendor_Number)
英字の大文字と小文字を同期する
Analytics の文字列比較は大文字と小文字を区別するため、データを使用して比較、結合、または関係を実行する前に、フィールドのすべてのデータの大文字と小文字を同期することが有用です。
UPPER( )
アルファベット文字を大文字に変換した文字列を返します。
例
Last_Name フィールドには値 "Smith" があります。 この値を大文字にし、別のテーブルの大文字値と比較する必要があります。
COMMENT "SMITH" を返します UPPER(Last_Name)
LOWER( )
アルファベット文字を小文字に変換した文字列を返します。
例
Last_Name フィールドには値 "Smith" があります。 この値を小文字にし、別のテーブルの小文字値と比較する必要があります。
COMMENT "smith" を返します LOWER(Last_Name)
PROPER( )
各単語の最初の文字を大文字に、残りの文字を小文字に設定した文字列を返します。
例
Last_Name フィールドには値 "smith" があります。 出力に固有名詞として表示する必要があります。
COMMENT "Smith" を返します PROPER(Last_Name)
文字列の計算と分離
長い文字列からデータのセグメントを抽出するか、長さや内容などの文字列の情報をテストする必要があるときには、これらの関数を使用します。
SUBSTR( )
文字列のうちの指定された部分文字列を返します。
例
GL_Account_Code フィールドには値 "001-458-873-99" があります。 最初の 3 バイトまたは 3 文字を文字列から抽出する必要があります。
COMMENT "001" を返します ASSIGN v_start_pos = 1 ASSIGN v_length = 3 SUBSTR(GL_Account_Code, v_start_pos, v_length)
LAST( )
文字列の末尾から指定された数の文字を返します。
例
GL_Account_Code フィールドには値 "001-458-873-99" があります。 最初の 2 バイトまたは 2 文字を文字列から抽出する必要があります。
COMMENT "99" を返します ASSIGN v_num_chars = 2 LAST(GL_Account_Code, v_num_chars)
SPLIT( )
文字列のうちの指定された部分を返します。
例
GL_Account_Code フィールドには値 "001-458-873-99" があります。 文字列からコードの 2 番目のセグメントを抽出する必要があります。
COMMENT "458" を返します ASSIGN v_delimiter = "-" ASSIGN v_segment_num = 2 SPLIT(GL_Account_Code, v_delimiter, v_segment_num)
AT( )
文字値における部分文字列の特定の出現の開始位置を示す数値を返します。
例
GL_Account_Code フィールドには値 "001-458-873-99" があります。 値 "458" の開始バイト位置を決定し、GL コードの 2 番目のセグメントが "458" (開始位置 "5") であるかどうかをテストする必要があります。
COMMENT "5" を返します ASSIGN v_occurrence = 1 ASSIGN v_substring = "458" AT(v_occurrence, v_substring, GL_Account_Code)
OCCURS( )
部分文字列が指定された文字値内に現れる回数を数えて返します。
例
GL_Account_Code フィールドには値 "001-458-873-99" があります。 データに 3 つのハイフン文字があることを確認し、GL コードが正しい形式であることを判定する必要があります。
COMMENT "3" を返します ASSIGN v_substring = "-" OCCURS(GL_Account_Code, v_substring)
LENGTH( )
文字列に含まれている文字数を返します。
例
GL_Account_Code フィールドには値 "001-458-873-99" があります。 データに 14 文字があることを確認し、GL コードが正しい形式であることを判定する必要があります。
COMMENT "14" を返します LENGTH(GL_Account_Code)
データ型の変換
Analytics テーブルを生成したデータ ソースとインポート文によっては、1 つのデータ型から別のデータ型にフィールドの値を変換し、演算をできるようにする必要があります。 たとえば、文字 ("12345") としてインポートされたデータで演算を実行するには、数値に変換する必要があります。
STRING( )
数値を文字列に変換します。
例
Invoice_Amount フィールドには値 12345.67 があります。 これを文字データに変換する必要があります。
COMMENT "12345.67"を返します ASSIGN v_str_length = 8 STRING(Invoice_Amount, v_str_length)
VALUE( )
文字列を数値に変換します。
ヒント
一般的に、VALUE() は ZONED() とともに使用され、先頭のゼロを追加します。
例
Invoice_Amount フィールドには値 "12345.67" があります。 これを数値データに変換する必要があります。
COMMENT 12345.67を返します VALUE(Invoice_Amount, 2)
CTOD( )
文字または数値の日付値を日付に変換します。 また、文字または数値の日付時刻値から日付を抽出し、それを日付として返すこともできます。 "Character to Date" の省略形です。
例
Submission_Date フィールドには値 "April 25, 2016" があります。 これを日付時刻データに変換する必要があります。
COMMENT `20160425`を返します ASSIGN v_date_format = "mmm dd, yyyy" CTOD(Submission_Date, v_date_format)
DATE( )
指定された日付または日付時刻から日付を抽出し、それを文字データとして返します。 また、現在のオペレーティング システム日付を返すこともできます。
例
Submission_Date フィールドには値 `20160425` があります。 これを文字データに変換する必要があります。
COMMENT "04/25/2016"を返します ASSIGN v_date_format = "MM/DD/YYYY" DATE(Submission_Date, v_date_format)
先頭のゼロの追加
先頭のゼロが必要なフィールドと一致させる必要があるときに、数値データを文字データに変換し、出力に先頭のゼロを追加します。
ZONED( )
数値データを文字データに変換し、出力の先頭にゼロを追加します。
例
Employee_Number フィールドには値 "254879" があります。 値を先頭ゼロ埋めの 10 桁の文字列に変換する必要があります。
ヒント
VALUE() 関数を使用して文字を数値データに変換してから、ZONED() への入力値として数値を使用します。
COMMENT "0000254879" を返します ASSIGN v_str_length = 10 ASSIGN v_num_decimals = 0 ZONED(VALUE(Employee_Number, v_num_decimals), v_str_length)
BINTOSTR( )
ZONED または EBCDIC 文字データから変換された Unicode 文字データを返します。 "Binary to String" の省略形です。
メモ
Unicode 版のみ。 非 Unicode 版については、上記の ZONED() を参照してください。
例
Employee_Number フィールドには値 "254879" があります。 値を先頭ゼロ埋めの 10 桁の文字列に変換する必要があります。
ヒント
VALUE() 関数を使用して文字を数値データに変換してから、ZONED() への入力値として数値を使用します。 そこで BINTOSTR() を使用し、ZONED() から返された ASCII データを Unicode に変換します。
COMMENT "0000254879" を返します ASSIGN v_str_length = 10 ASSIGN v_num_decimals = 0 ASSIGN v_str_type = "A" BINTOSTR(ZONED(VALUE(Employee_Number, v_num_decimals), v_str_length), v_str_type)
日付時刻部分の抽出
これらの関数を使用して、日付時刻値の特定のコンポーネントを分離および抽出します。
MONTH( )
指定された日付または日付時刻から月を抽出し、それを数値(1 ~ 12)として返します。
例
Transaction_Date フィールドには値 `20160815 100252` があります。 先頭にゼロがある文字データとして月を抽出する必要があります。
COMMENT "08" を返します ASSIGN v_str_length = 8 ZONED(MONTH(Transaction_Date), v_str_length)
DAY( )
指定された日付または日付時刻から日にちを抽出し、それを数値(1 ~ 31)として返します。
例
Transaction_Date フィールドには値 `20160815 100252` があります。 文字データとして日を抽出する必要があります。
COMMENT "15" を返します ASSIGN v_str_length = 8 STRING(DAY(Transaction_Date), v_str_length)
YEAR( )
指定された日付または日付時刻から年を抽出し、それを YYYY 書式の数値として返します。
例
Transaction_Date フィールドには値 `20160815 100252` があります。 数値として年を抽出する必要があります。
COMMENT 2016を返します YEAR(Transaction_Date)
HOUR( )
指定された時刻または日付時刻から時間を抽出し、それを 24 時間制の数値として返します。
例
Transaction_Date フィールドには値 `20160815 100252` があります。 数値として時間を抽出する必要があります。
COMMENT 10を返します HOUR(Transaction_Date)
MINUTE( )
指定された時刻または日付時刻から分数を抽出し、それを数値として返します。
例
Transaction_Date フィールドには値 `20160815 100252` があります。 数値として分を抽出する必要があります。
COMMENT 2を返します MINUTE(Transaction_Date)
SECOND( )
指定された時刻または日付時刻から秒数を抽出し、それを数値として返します。
例
Transaction_Date フィールドには値 `20160815 100252` があります。 数値として秒を抽出する必要があります。
COMMENT 52を返します SECOND(Transaction_Date)
CDOW( )
指定された日付または日付時刻の曜日を返します。 "Character Day of Week" の省略形です。
例
Transaction_Date フィールドには値 `20160815 100252` があります。 文字データとして日の名前を抽出する必要があります。
COMMENT "Mon" を返します CDOW(Transaction_Date, 3)
CMOY( )
指定された日付または日付時刻の月の名前を返します。 "Character Month of Year" の省略形です。
例
Transaction_Date フィールドには値 `20160815 100252` があります。 文字データとして月の名前を抽出する必要があります。
COMMENT "Aug" を返します CMOY(Transaction_Date, 3)
文字列の操作
これらの関数を使用して、文字フィールドのセグメントを削除または置換します。
INCLUDE( )
指定した文字のみを含む文字列を返します。
例
Address フィールドには値 "12345 ABC Corporation" があります。 住所番号を抽出し、会社の名前を除外する必要があります。
COMMENT "12345"を返します ASSIGN v_chars_to_return = "0123456789" INCLUDE(Address, v_chars_to_return)
EXCLUDE( )
指定した文字を除外する文字列を返します。
例
Address フィールドには値 "12345 ABC Corporation" があります。 会社名を抽出し、住所番号を除外する必要があります。
COMMENT "ABC Corporation" を返します ASSIGN v_chars_to_exclude = "0123456789" EXCLUDE(Address, v_chars_to_exclude)
REPLACE( )
指定された文字列のすべてのインスタンスを新しい文字列で置き換えます。
例
Address フィールドには値 "12345 Acme&Sons" があります。 "&" 文字を単語 " and " で置換する必要があります。
COMMENT "12345 Acme and Sons"を返します ASSIGN v_target_char = "&" ASSIGN v_replacement_char = " and " REPLACE(Address, v_target_char, v_replacement_char)
OMIT( )
指定した 1 つ以上の部分文字列が削除された文字列を返します。
例
Address フィールドには値 "12345 Fake St" があります。 番地の接尾辞がない住所を抽出する必要があります。
COMMENT "12345 Fake"を返します ASSIGN v_chars_to_omit = "St" OMIT(Address, v_chars_to_omit)
REVERSE( )
文字の順番を逆にした文字列を返します。
例
Report_Line フィールドには値 "001 Correction 5874.39 CR " があります。 値を逆にし、先頭または末尾のスペースを省略する必要があります。
COMMENT "RC 93.4785 noitcerroC 100" を返します REVERSE(ALLTRIM(Report_Line))
BLANKS( )
指定された数の空白スペースを含んでいる文字列を返します。
例
region_code フィールドの値に基づいて、領域名の演算フィールドを作成する必要があります。 コマンドの最後に指定するデフォルト値が少なくとも最も長い入力値と同じ長さであることを確認する必要があります。
COMMENT BLANKS 8 " " 文字の文字列を返します ASSIGN v_length = 8 DEFINE FIELD region COMPUTED "Southern" IF region_code = 1 "Northern" IF region_code = 2 "Eastern" IF region_code = 3 "Western" IF region_code = 4 BLANKS(v_length)