ソートマージ


5.8.17 {csvinclude|csvomit}オペランド

意味

CSVファイルの入力レコードの選択条件式を指定します。

このオペランドは,CSVファイルを指定した場合だけ有効です。CSVファイル以外を指定した場合は,KBLS1322-Eエラーとなります。

csvincludeオペランド:

条件を満たすレコードを選択します。

csvomitオペランド:

条件を満たさないレコードを選択します。

形式
{csvinclude|csvomit}="csv-condition-expression [△{AND | OR}△csv-condition-expression … ]"

レコードを選択するための選択条件式を指定します。

複数の条件式(csv-condition-expression)を丸括弧「()」で囲むことによって,条件式の優先順位を変更できます。

  • このオペランドは,CSVファイルを指定した場合だけ有効です。

  • このオペランドは,{include|omit}オペランドと同時に指定できません。

  • コマンドに指定する場合は,選択条件式全体をダブルクォーテーションで囲みます。

  • exsortパラメタファイルに指定する場合は,選択条件式をダブルクォーテーションで囲まないでください。

  • 指定できる選択条件式の個数と比較項目の合計長を,環境ファイル「EXS_CSVSELNUMMAX」で指定できます。なお,比較項目の合計長は,入力データのエンコードによって異なります。環境ファイル「EXS_CSVSELNUMMAX」については「15.1.1(19) EXS_CSVSELNUMMAX」を参照してください。

  • 使用できる括弧は,ネストレベル0〜24です。

  • 指定したセルに対応するデータが入力されていない場合,NULLセルとして処理します。NULLセルの扱いについては,「付録D CSVファイル内のNULLセルの扱い(SORT EEの機能)」を参照してください。

  • 入力セルデータの桁調整については,「付録B CSVファイルのデータの扱い(SORT EEの機能)」を参照してください。

指定値

csv-condition-expressionの形式を次に示します。

csv-condition-expressionオペランド形式1
cond-attributecellpos−{lenp[,s]|ddateformdatedigit[,timedigit]}△compcond-value
csvfield-name  comp  cond-value

比較項目(セル)と条件値を比較する条件式を定義します。

csv-condition-expressionオペランド形式2
cond-attributecellpos−{lenp[,s]|ddateformdatedigit[,timedigit]}△compcond-attributecellpos−{lenp[,s]|ddateformdatedigit[,timedigit]}
cond-attributecellpos−{lenp[,s]|ddateformdatedigit[,timedigit]}△ compcsvfield-name
csvfield-namecompcond-attributecellpos−{lenp[,s]|ddateformdatedigit[,timedigit]}
csvfield-name  comp csvfield-name

比較項目(セル)と比較項目(セル)を比較する条件式を定義します。

  • cond-attribute+cellpos−{len|p[,s]|d,dateform|datedigit[,timedigit]}は間に空白やタブを置かないでつなげて指定します。

  • comp(比較演算子)の前後は,1個以上の空白またはタブで区切って指定します。

  • cond-attribute+cellpos−{len|p[,s]|d,dateform|datedigit[,timedigit]}とcsvfield-nameを混在させて定義することができます。

  • {AND|OR}(論理演算子)の前後は,1個以上の空白またはタブで区切って指定します。

csv-condition-expressionに指定するそれぞれの値について次に示します。

cond-attribute

比較項目(セル)のデータ形式を指定します。

cond-attributeの指定値

意 味

j

比較項目が文字(JIS8単位コード※1)であることを指定します。

c

比較項目が文字であることを指定します。※2

d

比較項目が文字(左分離符号付き数字)であることを指定します。※4

z

比較項目が固定小数点数であることを指定します。※4

g

比較項目が日付(英数字)であることを指定します。※4

h

比較項目が日付時刻(数字)であることを指定します。※6

w

比較項目が文字(ワイド文字※3,※5)であることを指定します。

u

比較項目が文字(マルチバイト文字※5,※7,※8)であることを指定します。

v

比較項目が文字(マルチバイト文字※5,※7,※8)であることを指定します(UnicodeのIVSに対応した属性です)。

注※1

ASCIIコード(0x00〜0x7F)を含む,JIS8単位コード(0x00〜0xFF)を意味します。

入力データに日本語などのマルチバイト文字が含まれている場合,マルチバイト文字ではなく,シングルバイト文字として扱われます。

EBCDIKコードの体系に従って比較項目を比較するEBCDIKコード比較オプション機能を使用できます。EBCDIKコード比較オプション機能については,「5.5.3 EBCDIKコード比較オプション(EBCJ,EBCEオプション)」を参照してください。

注※2

入力データのエンコードの種別には対応しません。入力データの文字を構成するバイト長を意識しないで,常に1バイト長のシングルバイト文字として扱います。ASCIIコードやJIS8単位コード向けの属性です。

注※3

入力データのエンコードに「UCS-2LE」,「UCS-2BE」,「UTF-16LE」,「UTF-16BE」または「UNICODE(入力ファイルのUnicodeシグニチャ(BOM)の形式がUTF-16LEまたはUTF-16BE)」を指定した場合,1文字2バイトのワイド文字として扱います。また,サロゲートペア文字は2文字として扱います。

入力データのエンコードに「UCS-4LE」,「UCS-4BE」,「UTF-32LE」,「UTF-32BE」または「UNICODE(入力ファイルのUnicodeシグニチャ(BOM)の形式がUTF-32LEまたはUTF-32BE)」を指定した場合,1文字4バイトのワイド文字として扱います。

文字のエンコードの指定方法については,「5.8.13 codetypeオペランド」を参照してください。

注※4

入力データのエンコードで解釈します。

「ASCII」,「SJIS」,「EUC-JP」,「EUC-HJ」または「UTF-8」を指定した場合は1バイト,「UCS-2LE」,「UCS-2BE」,「UTF-16LE」または「UTF-16BE」を指定した場合は2バイト,「UCS-4LE」,「UCS-4BE」,「UTF-32LE」または「UTF-32BE」を指定した場合は4バイトの長さで文字を扱います。

文字のエンコードの指定方法については,「5.8.13 codetypeオペランド」を参照してください。

注※5

比較項目範囲の入力データがすべてASCII対応コード(英数字)である場合は,属性コード「c」を指定した方が処理効率が向上します。属性コード「c」は1文字1バイトで扱いますので,エンコードに対応したバイト長を指定してください。

ASCII対応コードについては,「付録H Unicode操作文字コード一覧(SORT EE)」を参照してください。

1文字の長さについては,「付録I.2(1) 文字の長さ」を参照してください。

文字属性コードの特徴については,「付録I.2(2) 文字属性コードの特徴」を参照してください。

注※6

比較項目範囲の入力データが次の条件すべてに該当する場合は,属性コード「c」を指定した方が処理効率は向上します。

・桁数がそろっている。

・時刻が24時間制で表記されている。

・日付,時刻またがりのデータがない。

属性コード「c」は1文字1バイトで扱いますので,エンコードに対応したバイト長を指定してください。

1文字の長さについては,「付録I.2(1) 文字の長さ」を参照してください。

文字属性コードの特徴については,「付録I.2(2) 文字属性コードの特徴」を参照してください。

注※7

属性コード「u」と「v」は,入力データのエンコードで解釈します。1文字の長さは可変長として扱います。

文字のエンコードの指定方法については,「5.8.13 codetypeオペランド」を参照してください。また,マルチバイト文字の扱いについては,「付録I.2 文字列データの扱い」を参照してください。

注※8

入力データのエンコードに「UTF-8」,「UTF-16LE」,「UTF-16BE」,「UCS-4LE」,「UCS-4BE」,「UTF-32LE」,「UTF-32BE」または「UNICODE(入力ファイルのUnicodeシグニチャ(BOM)の形式がUTF-16LE,UTF-16BE,UTF-32LEまたはUTF-32BE)」のどれかを指定した場合,UnicodeのIVS(Ideographic Variation Sequence)を次のとおり解釈します。UnicodeのIVSについては,「付録I.2(6) IVS対応」を参照してください。

・属性コード「u」は,UCSコードが一致する文字であれば,UnicodeのIVSの異体字であっても同じ文字として扱います。

・属性コード「v」は,UCSコードが一致する文字であっても,VS(Variation Selector,異体字セレクタ)が異なる場合は,異なる文字として扱います。

cellpos

レコード内の比較対象セル(列)の位置を,番号で指定します。

レコードの先頭セル番号を「1」,最大セル番号を「n」とし,1〜nまでの番号を指定します。最大セル番号は,16,384番です。

len

cond-attributeに「j」,「c」,「w」,「u」,「v」または「d」を指定した場合に,文字データの最大バイト長を10進数で指定します。

  • 属性「d」は最大桁数を指定します。

  • 比較項目の長さを次の範囲で指定します。

    cond-attribute

    指定できる長さ(単位)

    j,c,w※1

    • 入力データのエンコードが「ASCII」,「SJIS」,「EUC-JP」,「EUC-HJ」または「UTF-8」の場合

      1〜4,096(バイト)

    • 入力データのエンコードが「UCS-2LE」,「UCS-2BE」,「UTF-16LE」または「UTF-16BE」の場合※2

      2〜8,192(バイト)

    • 入力データのエンコードが「UCS-4LE」,「UCS-4BE」,「UTF-32LE」または「UTF-32BE」の場合※3

      4〜16,384(バイト)

    u,v

    1〜4,096(文字数)※5

    d

    1〜256(桁)※4

    注※1

    入力データのエンコードの種別によって,マルチバイト文字の長さは異なります。詳細は「付録I.2 文字列データの扱い」を参照してください。

    注※2

    入力データのエンコードに「UCS-2LE」,「UCS-2BE」,「UTF-16LE」,「UTF-16BE」または「UNICODE(入力ファイルのUnicodeシグニチャ(BOM)の形式がUTF-16LEまたはUTF-16BE)」を指定した場合,長さには「2の倍数」を指定してください。

    2の倍数以外を指定すると,KBLS1308-Eメッセージが表示されてエラーになります。

    注※3

    入力データのエンコードに「UCS-4LE」,「UCS-4BE」,「UTF-32LE」,「UTF-32BE」または「UNICODE(入力ファイルのUnicodeシグニチャ(BOM)の形式がUTF-32LEまたはUTF-32BE)」を指定した場合,長さには「4の倍数」を指定してください。

    4の倍数以外を指定すると,KBLS1308-Eメッセージが表示されてエラーになります。

    注※4

    「バイト長」ではなく数値の「桁数」を指定してください。「UCS-2」,「UCS-4」,「UTF-16」および「UTF-32」の数値データの扱いについては,「付録I.3 数値データの扱い」を参照してください。

    注※5

    「バイト長」ではなく「文字数」を指定してください。UTF-16のサロゲートペア文字は1文字として扱います。また,UnicodeのVS(Variation Selector,異体字セレクタ)は文字数に数えません。マルチバイト文字の扱いについては,「付録I.2 文字列データの扱い」を参照してください。

    ・実際に入力したデータ長に過不足がある場合は調整を行います。詳細は,「付録B CSVファイルのデータの扱い(SORT EEの機能)」を参照してください。

    ・入力データを引用符で囲んでいる場合は,引用符を除外した内部データ形式で比較項目を比較します。なお,セルデータが変更されることはありません。

    ・入力データの先頭が引用符の場合だけ,対の引用符で囲んだ範囲がエスケープされます。詳細は,「付録B CSVファイルのデータの扱い(SORT EEの機能)」を参照してください。

    ・入力データの先頭および末尾の引用符は,有効バイト長に含まれません。また,エスケープされた引用符は,2文字で1文字となります。

    ・マルチバイト文字(日本語)の途中で最大長を超えた場合,超えた部分のマルチバイト文字以降を切り捨て,代わりに1バイトの空白で埋め字をします。なお,切り捨ては比較項目属性「c」,「w」,「u」および「v」の場合だけです。比較項目属性「j」は日本語として扱われません。詳細は,「付録B CSVファイルのデータの扱い(SORT EEの機能)」を参照してください。

p [,s]

cond-attributeに「z」を指定した場合に,数値データの有効桁を10進数で指定します。

  • p(precision:精度)は,数値データの総桁数を表します。pからsを引いた桁が整数部の有効桁となります。

  • pの指定範囲は,1〜38桁です。

  • s(scale:位)は,数値データの小数部(小数点以下)の有効桁を表します。

  • sの指定範囲は,0〜p桁です(0≦s≦p)。p=sを指定した場合は,整数部の有効桁は0(整数部なし)となります。

  • sを省略した場合は,小数部の有効桁は0(小数部なし)を仮定します。データ中に小数点を含まない場合は,sの指定は必要ありません。

  • データ中には,0〜9の数字以外に,データを囲んでいる引用符,符号,通貨記号,および桁修飾文字(コンマ,小数点,空白)を含むことができ,これらの文字を除いた内部データ形式で比較項目を比較します。また,それぞれの除外文字は位置規則があります。違反するデータを検出した場合は,データ形式が不正と見なされ「KBLS1320-E 比較項目にエラーデータを検出しました。」というメッセージが表示されて,エラーになります。メッセージが表示されたときの原因と対処方法の詳細は,「付録L メッセージ」を参照してください。

  • データ形式が不正な場合でもエラーにしたくないときは,コマンドオプション「-cmdopt KEYNOCHK」を指定してください。

  • 除外文字の位置規則については,「付録B CSVファイルのデータの扱い(SORT EEの機能)」を参照してください。

  • データ中の符号,通貨記号,桁修飾文字(コンマ,小数点,空白),およびデータを囲んでいる引用符は,有効桁に含まれません。有効桁の対象は,0〜9の数字だけです。

  • データ中に小数点がある場合は,小数点位置を合わせて入力します。データ中に小数点がない場合は,データの末尾に小数点を仮定して入力します。詳細は,「付録B CSVファイルのデータの扱い(SORT EEの機能)」を参照してください。

  • 実際に入力したデータの桁に過不足がある場合は桁調整を行います。詳細は,「付録B CSVファイルのデータの扱い(SORT EEの機能)」を参照してください。

  • すべて空白のデータは,0(ゼロ)として入力します。

  • 環境ファイル「EXS_ROUND」または-inpfile,-catinp,-splitinpパラメタのroundオペランドで指定した丸め方式(四捨五入,切り捨て,切り上げのどれか)に従って,整数部または小数部の丸め処理がされます。EXS_ROUNDおよびroundオペランドの両方の指定を省略している場合,切り捨ての処理がされます。詳細は,「5.8.11 roundオペランド」を参照してください。

  • 引用符,符号,通貨記号,桁修飾文字の除外,および丸め処理によって,入力セルデータが変更されることはありません。

ddateform

cond-attributeに「g」を指定した場合に,日付データの有効桁と書式番号を指定します。

  • d(digit:桁)は,日付データの有効桁を表します。

  • dの指定範囲は,2〜8桁です。なお,書式3〜4の2桁年号に対して7桁以上を指定した場合,6桁を仮定します。

  • 指定可能な範囲より大きな桁を指定した場合,指定可能な最大桁を仮定します。例えば,書式3の日付データに対して7桁以上を指定した場合,6桁を仮定します。

  • データの左端から指定された書式に適用します。有効桁以降のデータは無視します。

  • 実際に入力したデータの桁に過不足がある場合は桁調整を行います。詳細は,「付録B CSVファイルのデータの扱い(SORT EEの機能)」を参照してください。

  • データ中には,データを囲んでいる引用符と年月日を区切る桁修飾文字を含むことができ,これらの文字を除いた内部データ形式で比較項目を比較します。日付データの形式については,「付録B CSVファイルのデータの扱い(SORT EEの機能)」を参照してください。

  • データの先頭と末尾を囲んでいる引用符,およびデータ中の桁修飾文字は,有効桁に含まれません。

  • 入力データの年号部分が数字「0〜9」以外を指定した場合,データ形式が不正と見なされ「KBLS1320-E 比較項目にエラーデータを検出しました。」というメッセージが表示されてエラーになります。メッセージが表示されたときの原因と対処方法の詳細は,「付録L メッセージ」を参照してください。

  • データ形式が不正な場合でもエラーにしたくないときは,コマンドオプション「-cmdopt DATENOCHK」を指定してください。なお,年号以外のデータ(月,日)は,形式チェックしません。

  • 引用符,および桁修飾文字の除外によって,入力セルデータが変更されることはありません。

  • 桁修飾文字は,「ハイフン(-)」と「スラント(/)」の2種類です。

  • 環境変数「EXSORTGOPTION(64ビット版は「EXSORT64GOPTION」)」を指定すると,「年月日{T|空白}時分秒」形式の入力データを扱えます。また,桁修飾文字は,「ハイフン」,「スラント」および「ピリオド(.)」の3種類に変更されます。環境変数については,「14.1.1(29) EXSORTGOPTION」または「14.1.2(29) EXSORT64GOPTION」を参照してください。

  • dateformは日付データの書式を表します。dateformの指定値を次に示します。

    dateformの指定値

    データ形式

    書式

    d(桁)

    1

    前置4桁年号

    YYYY/MM/DD

    YYYY-MM-DD

    YYYY.MM.DD

    YYYYMMDD

    YYYY

    2〜8

    2

    後置4桁年号

    MM/DD/YYYY

    MM-DD-YYYY

    MM.DD.YYYY

    MMDDYYYY

    2〜8

    3

    前置2桁年号

    YY/MM/DD

    YY-MM-DD

    YY.MM.DD

    YYMMDD

    YY

    2〜6

    4

    後置2桁年号

    MM/DD/YY

    MM-DD-YY

    MM.DD.YY

    MMDDYY

    2〜6

    (凡例)

    YYYY:西暦4桁年号

    YY:西暦下2桁年号

    MM:月

    DD:日

    桁修飾文字で年月日を区切っている場合は,MMおよびDD部分のデータは1桁でもかまいません。

    (例)

    「YYYY-MM-DD」の場合:2008-7-7

    「MM/DD/YY」の場合:1/1/07

    注※

    環境変数「EXSORTGOPTION(64ビット版は「EXSORT64GOPTION」)」の指定がある場合,ピリオドを桁修飾文字として扱います。

−datedigit[,timedigit]

cond-attributeに「h」を指定した場合に,日付および時刻データの有効桁を10進数で指定します。

  • datedigitは,日付データの有効桁を表します。

  • timedigitは,時刻データの有効桁を表します。

  • datedigitに指定できる桁は0,4,6および8桁,timedigitに指定できる桁は0,2,4,6および9桁のどれかです。それ以外を指定した場合,KBLS1326-Eメッセージが表示されてエラーになります。また,datedigitとtimedigit両方に0を指定した場合もエラーになります。

  • 入力データを項目の区切り文字で区切り,それぞれのデータの左端から指定された桁数の書式に適用します。

  • 入力したデータの桁に過不足がある場合は,項目によって桁調整が実施されるか,またはエラーとなります。端数処理の詳細については,「付録J 日付時刻データの形式(SORT EEの機能)」を参照してください。

  • データ中には,データの先頭と末尾を囲んでいる引用符,項目区切り文字('T'または空白),および桁修飾文字(スラント,ハイフン,コロン,およびピリオド)を含むことができ,これらの文字を除いた内部データ形式で比較項目を比較します。日付時刻データの形式については,「3.2 キー属性と形式」を参照してください。

  • データの先頭と末尾を囲んでいる引用符,項目区切り文字('T'または空白),桁修飾文字(スラント,ハイフン,コロン,およびピリオド),および12時間制表記は,有効桁に含まれません。

  • 引用符,項目の区切り文字,および桁修飾文字を取り除くことで,入力セルデータが変更されることはありません。

  • 入力データが数字「0〜9」以外を指定した場合,データ形式が不正と見なされKBLS1320-Eメッセージが表示されてエラーになります。また,年の桁数が4桁未満,入力データが指定可能な範囲を超えた場合もエラーとなります。メッセージが表示されたときの原因と対処方法の詳細は,「付録L メッセージ」を参照してください。データ形式が不正な場合でもエラーにしたくないときは,コマンドオプション「-cmdopt DATETIMENOCHK」を指定してください。

  • 指定した桁数に応じた日付時刻キーの書式を次に示します。

    項目

    桁数

    書式

    日付

    4

    YYYY

    6

    YYYYMM

    YYYY-MM

    YYYY/MM

    YYYY.MM

    8

    YYYYMMDD

    YYYY-MM-DD

    YYYY/MM/DD

    YYYY.MM.DD

    時刻

    2

    hh

    4

    hhmm

    hh:mm

    hh.mm

    6

    hhmmss

    hh:mm:ss

    hh:mm.ss

    hh.mm.ss

    9

    hhmmssfff

    hh:mm:ss:fff

    hh:mm:ss.fff

    hh.mm.ss.fff

    12時間制表記

    2

    AM

    am

    PM

    pm

    4

    A.M.

    a.m.

    P.M.

    p.m.

    書式の説明を次に示します。

    書式

    説明

    日付

    YYYY

    西暦年4桁

    MM

    DD

    時刻

    hh

    mm

    ss

    fff

    秒の小数部(ミリ秒)

    12時間制表記

    AM

    am

    A.M.

    a.m.

    PM

    pm

    P.M.

    p.m.

    時(hh)を12時間制で表記した場合に指定

    項目区切り文字

    桁修飾文字

    /

    日付の桁修飾文字

    -

    日付の桁修飾文字

    :

    時刻の桁修飾文字

    .

    日付,時刻の桁修飾文字

    空白

    日付項目と時刻項目の区切り文字

    時刻項目と12時間制表記の区切り文字

    T

    日付項目と時刻項目の区切り文字

    注※

    桁修飾文字(スラント,ハイフン,コロン,およびピリオド)で年月日時分秒を区切っている場合は,月日時分秒の各データは1桁でもかまいません。

csvfield-name

比較項目を,入力ファイルパラメタのcsvfieldオペランドで定義したフィールド名で指定します。

  • cond-attributeと同じ属性を定義したフィールド名だけ指定できます。

comp

比較演算子を指定します。compの指定値を次に示します。

compの指定値

意味

左辺=右辺

!=

左辺≠右辺

左辺>右辺

>=

左辺≧右辺

左辺<右辺

<=

左辺≦右辺

cond-value

比較の条件となる値(条件値)を指定します。cond-valueの指定値を次に示します。

cond-valueの指定値

比較項目のデータ形式

入力データのエンコード

条件値の桁

備考

最小

最大

C'文字列'

j(文字)

c(文字)

w(ワイド文字)

u(マルチバイト文字)

v(マルチバイト文字)

1

4,096

S'文字列'※8,※9

j(文字)

c(文字)

w(ワイド文字)

u(マルチバイト文字)

v(マルチバイト文字)

1

4,096

文字条件値を環境変数で指定する場合に使用します。

N'固定小数点数'※1,※8

z(固定小数点)

1

38

小数点と符号は,桁に含みません。

N'10進数'※2,※8

d(左分離符号付き数字)

1

256

符号を指定する場合,符号を含めて256桁までです。

D'日付'※3,※8

g(日付)

2

8

指定できるのは数字だけです。桁修飾文字(スラント,ハイフンおよびピリオド)は指定できません。

D'マスク日付'※6,※7,※8,※9

g(日付)

2

8

指定できるのは数字とマスク文字(アスタリスク)だけです。桁修飾文字(スラント,ハイフンおよびピリオド)は指定できません。桁数は比較項目の桁数と一致させてください。

H'日付T時刻'※5,※8

h(日付時刻)

日付:0

時刻:0

日付:8

時刻:9

指定できるのは数字だけです。

時刻の前には項目区切り文字の「T」を指定します。

桁数は比較項目の桁数と一致させてください。

H'マスク日付Tマスク時刻※5,※8,※9

h(日付時刻)

日付:0

時刻:0

日付:8

時刻:9

指定できるのは数字とマスク文字(アスタリスク)だけです。時刻の前には項目区切り文字の「T」を指定します。桁数は比較項目の桁数と一致させてください。

X'16進数'※4,※8

j(文字)

c(文字)

w(ワイド文字)

u(マルチバイト文字)

v(マルチバイト文字)

ASCII

SJIS

EUC-JP

EUC-HJ※10

UTF-8

2

8,192

指定できるのは偶数桁のデータだけです。

2桁で1バイトを表します。

UCS-2LE

UCS-2BE

UTF-16LE

UTF-16BE

4

16,384

UCS-4LE

UCS-4BE

UTF-32LE

UTF-32BE

8

32,768

NULL

すべてのデータ形式

NULLセル(空のセル)を意味します。

(凡例)

−:なし

注※1

固定小数点数(z)の条件値として指定できるのは,数字(0〜9),小数点(.),および符号(+,-)だけです。符号を付ける場合は先頭に付けます。小数点以下と整数部の桁を合わせて38桁まで指定できます。

注※2

左分離符号付き数字(d)の条件値として指定できるのは,数字(0〜9)および符号(+,-)だけです。

符号を付ける場合は先頭に付けます。符号を含めて256桁まで指定できます。

注※3

日付(g)の条件値として指定できるのは,数字(0〜9)だけです。桁修飾文字(スラント,ハイフンおよびピリオド)は指定できません。

比較項目の書式に合わせて条件値を指定してください。次に「2012年2月24日」の指定例を示します。

【例1】前置4桁年号(書式=1)

csvinclude=g+1-8,1 = D'20120224'

【例2】後置4桁年号(書式=2)

csvinclude=g+1-8,2 = D'02242012'

【例3】前置2桁年号(書式=3)

csvinclude=g+1-6,3 = D'120224'

【例4】後置2桁年号(書式=4)

csvinclude=g+1-6,4 = D'022412'

なお,指定した条件値が日付として正しくない場合でも,エラーにならないで正常に扱われます。

例えば,前置4桁年号の比較項目に対して,後置4桁年号の条件値「D'02242012'」を指定した場合,条件値は「0224年20月12日」と解釈され,正しくレコードを選択できなくなるので注意してください。

注※4

16進数の条件値として指定できるのは,数字(0〜9)および英字(A〜F)だけです。

注※5

  • 日付時刻(h)の条件値として指定できるのは,数字(0〜9)だけです。マスク日付時刻(h)の条件値として指定できるのは,数字(0〜9)とマスク文字(アスタリスク)だけです。桁修飾文字(スラント,ハイフン,コロンおよびピリオド)は指定できません。

  • 日付に指定できる桁は0,4,6または8桁,時刻に指定できる桁は0,2,4,6または9桁のどれかです。

  • 日付だけ,または時刻だけを指定できます。時刻の先頭には必ず「T」を指定してください。

  • 日付時刻条件値の桁数は,比較項目のdatedigitおよびtimedigitと同じ桁を指定します。なお,区切り文字「T」は桁に含みません。

  • 次に示す条件値を指定した場合,KBLS1314-Eメッセージが表示されてエラーとなります。

    ・日付時刻条件値に,数字(0〜9)および区切り文字の「T」以外を指定した場合。

    ・マスク日付時刻条件値に,数字(0〜9),マスク文字(アスタリスク)および区切り文字の「T」以外を指定した場合。

    ・日付時刻条件値またはマスク日付時刻条件値の桁数が,比較項目のdatedigitおよびtimedigitで指定した桁数と異なる場合。

    ・日付時刻条件値またはマスク日付時刻条件値に,0月または0日を指定した場合。

  • 日付条件値の指定例を示します。

    【例1】日付「2013年7月25日」を選択する。

    csvinclude=h+1-8,0 = H'20130725'

    【例2】時刻「20時16分53秒498」を選択する。

    csvinclude=h+1-0,9 = H'T201653498'

    【例3】日時「2013年7月25日20時16分53秒498」以降を選択する。

    csvinclude=h+1-8,9 >= H'20130725T201653498'

    【例4】日付「2013年7月」,時刻「20時16分」を選択する。

    csvinclude=h+1-6,4 = H'201307T2016'

  • マスク日付時刻条件値の指定例を示します。

    【例1】日付「24日」を選択する。

    csvinclude=h+1-8,0 = H'******24'

    【例2】時刻「0分」を選択する。

    csvinclude=h+1-0,4 = H'T**00'

    【例3】日付「31日」の時刻「59分」を選択する。

    csvinclude=h+1-8,4 = H'******31T**59'

  • 日付時刻条件値の指定可能な範囲は,使用するSORT EEのコマンド,およびコマンド実行システムによって異なります。指定可能な範囲の詳細については,「付録J 日付時刻データの形式(SORT EEの機能)」を参照してください。日付時刻条件値に範囲外の値を指定した場合は,KBLS1314-Eメッセージが表示されてエラーになります。

  • 日付時刻として正しくない条件値の場合も,扱える値の範囲内(0月および0日を除く)であればエラーにしないで,日付,時刻またがりとして扱われます。例えば「H'20139999T999999'」を指定した場合,条件値は「2021年06月11日 04時40分39秒」と解釈されます。

  • 日付時刻条件値は実行システムのローカルタイムとして扱われます。

  • 指定したマスク日付時刻条件値の,日付,時刻のまたがりは調整されません。入力した日付時刻データは,日付,時刻またがりが調整されます。このため,マスク日付条件値に存在しない日時を指定した場合,意図したレコードが選択されないおそれがあるので注意してください。例えば,マスク日付時刻条件値に時刻「60分」と指定した場合,入力データ「20時60分01秒」は「21時00分01秒」と扱われ選択されません。入力データ「20時60分01秒」を選択する場合は,マスク日付時刻条件値の時刻は「0分」と指定してください。

注※6

日付(g)の条件値として指定できるのは,数字(0〜9)とマスク文字(アスタリスク)だけです。桁修飾文字(スラント,ハイフンおよびピリオド)は指定できません。比較項目の書式に合わせて条件値を指定してください。

「24日」のレコードを選択する指定例を次に示します。

年と月の部分にマスク文字(アスタリスク)を指定し,日に「24」を指定します。

【例1】前置4桁年号(書式=1)

csvinclude=g+1-8,1 = D'******24'

【例2】後置4桁年号(書式=2)

csvinclude=g+1-8,2 = D'**24****'

【例3】前置2桁年号(書式=3)

csvinclude=g+1-6,3 = D'****24'

【例4】後置2桁年号(書式=4)

csvinclude=g+1-6,4 = D'**24**'

マスク文字は,年月日のどの位置にも指定できます。例えば,前置4桁年号の比較項目に対して「D'******1*'」と指定した場合,年月に関係なく10〜19日のレコードが該当します。「D'200*01**'」指定した場合は,2000〜2009年の1月のレコードが該当します。

なお,指定した条件値が日付として正しくない場合でも,エラーにならないで正常に扱われます。例えば,前置4桁年号の比較項目に対して,条件値「D'***24***'」を指定した場合,条件値は「***2年4*月**日」と解釈され,意図したレコードが選択されないおそれがあるので注意してください。

注※7

前置2桁年号および後置2桁年号で,年にマスク文字を指定した場合,基準年は適用されないので注意してください。

注※8

exsortパラメタファイルへ次に示す条件値を指定する場合,環境変数を使って記述することができます。環境変数名で指定する場合は「%環境変数名%」と環境変数名を%で囲んで記述します。

【SORT EE 08-30以降】

「H'日付T時刻'」

【SORT EE 08-50以降】

「S'文字列'」,「N'固定小数点数'」,「X'16進数'」,「D'日付'」,「D'マスク日付'」,「H'マスク日付Tマスク時刻'」

詳細は「4.5.5 環境変数」を参照してください。

注※9

「S'文字列'」,「D'マスク日付'」および「H'マスク日付Tマスク時刻'」は,SORT EE 08-50以降で有効な条件値です。

注※10

入力データのエンコードが「EUC-HJ」の場合,マルチバイト文字の条件値は「X'16進数'」形式で指定してください。

ワイド文字およびマルチバイト文字に対する条件値の指定のしかた

属性コード「w」,「u」および「v」に対する条件値の指定のしかたについて説明します。

  • 入力データのエンコードのエンディアンを合わせて指定してください。例えば,全角ひらがな「あ(U+3042)い(U+3044)」を「UCS-2LE」または「UTF-16LE」で指定する場合は「X'42304430'」,「UCS-2BE」または「UTF-16BE」で指定する場合は「X'30423044'」と指定します。

  • Unicodeの入力データに対して属性コード「u」を指定した場合,UCSコードだけを比較します。UnicodeのIVS(Ideographic Variation Sequence)の異体字は区別しません。

    例えば,「[図データ](U+845B;U+E0102)」の異体字を文字条件値に指定した場合,VS(Variation Selector,異体字セレクタ)の「U+E0102」は無視し,UCSコードの「U+845B」で比較します。「include=u+0-1 = C'[図データ]'」の指定では,「[図データ](U+845B;VSなし)」,「[図データ](U+845B;U+E0102)」,「[図データ](U+845B;U+E0103)」はすべて同じ文字として選択されます。

  • Unicodeの入力データに対して属性コード「v」を指定した場合,UnicodeのIVS(Ideographic Variation Sequence)の異体字を区別します。

    例えば,「[図データ](U+845B;U+E0102)」の異体字を文字条件値に指定した場合,UCSコードとVSの両方で比較します。「include=v+0-1 = C'[図データ]'」の指定では,「[図データ](U+845B;U+E0102)」を選択し,「[図データ](U+845B;VSなし)」と「[図データ](U+845B;U+E0103)」は選択されません。

  • エディタなどの制約によって,Unicodeのサロゲートペア文字,異体字,またはUnicode以外の第三水準・第四水準・外字などの文字を文字条件値「C'文字列'」に直接記述できない場合は,16進数条件値「X'16進数'」で文字コードを指定してください。

  • Unicodeのサロゲートペア文字,およびIVSについての詳細は,「付録I.2(6) IVS対応」を参照してください。

条件値の扱い

cond-attributeが「h(日付時刻)」,またはcond-attributeが「g(日付)」で,条件値に「D'マスク日付'」を指定した場合は,条件値と比較項目は同じ長さ(桁数)で指定してください。桁数が一致しない場合は,KBLS1314-Eエラーとなります。

cond-attributeおよび条件値が上記以外で,かつ条件値と比較項目の長さ(桁数)が一致しない場合,比較項目の桁数に合わせて条件値の桁数はそろえられます。

  • 条件値の桁が指定した比較項目より短い場合

    不足部分に埋め字をして比較項目と同じ長さにします。

    文字条件値の場合は埋め字としてスペースが挿入されます。また,固定小数点数条件値,10進数条件値,日付条件値,および16進数条件値の場合は,埋め字として数値「0」が挿入されます。

    cond-value

    形式

    埋め字の位置

    埋め字データ

    C'文字列'

    下位

    空白

    N'固定小数点数'

    整数部

    上位

    数字「0」

    小数部

    下位

    N'10進数'

    上位

    数字「0」

    D'日付'

    下位

    数字「0」

    X'16進数'

    下位

    数字「00」

    (凡例)

    −:該当せず。

  • 条件値の桁が指定した比較項目より長い場合

    桁あふれ部分を切り捨てて比較項目と同じ長さにします。

    cond-value

    形式

    切り捨て位置

    C'文字列'

    下位※1

    N'固定小数点数'

    整数部

    上位

    小数部

    下位※2

    N'10進数'

    上位

    D'日付'

    下位

    X'16進数'

    下位

    (凡例)

    −:該当せず。

    注※1

    マルチバイト文字(日本語)の途中で桁あふれ部分を切り捨てた場合,切り捨てた部分のマルチバイト文字以降を切り捨て,代わりに空白またはゼロ値で埋め字をします。

    なお,埋め字は比較項目属性「c」および「w」の場合だけです。比較項目属性「j」は日本語として扱われません。詳細は「付録B CSVファイルのデータの扱い(SORT EEの機能)」を参照してください。

    注※2

    切り捨てた小数部について,桁の丸めは行わず切り捨てとなります。

    環境ファイル(EXS_ROUND),またはroundオプションで指定された方式は適用されません。

条件値の桁そろえの例を次に示します。なお,exsortパラメタファイルに指定する場合は,選択条件式をダブルクォーテーションで囲まないでください。

【例1】比較項目の桁>条件値の桁

条件値の種類

選択条件式の指定

桁そろえ後の条件値

解説

比較項目

条件値

文字条件値

w+1-4

C'ab'

C'ab△△'

2文字分の空白を下位に仮定した条件値と見なします。

固定小数点数条件値

z+2-10,3

N'-1234.567'

N'-0001234.567'

3桁分の数字「0」を整数部の上位に仮定した条件値と見なします。

z+2-10,3

N'1234567.8'

N'1234567.800'

2桁分の数字「0」を小数部の下位に仮定した条件値と見なします。

z+2-10,3

N'+123.45'

N'+0000123.450'

4桁分の数字「0」を整数部の上位に,1桁分の数字「0」を小数部の下位に仮定した条件値と見なします。

10進数条件値

d+2-10

N'+12345'

N'+000012345'

4桁分の数字「0」を上位に仮定した条件値と見なします。条件値は符号を含めて10桁です。

日付条件値

g+3-8,1

D'201113'

D'20111300'

2桁分の数字「0」を下位に仮定した条件値と見なします。

16進数条件値

c+1-8

X'61006200'

X'6100620000000000'

入力データのエンコードに「UCS-2LE」を指定した場合

2文字分の数字「0000」を下位に仮定した条件値と見なします。

(凡例)

 :埋め字を仮定する部分です。

△:空白を示します。

【例2】比較項目の桁<条件値の桁

条件値の種類

選択条件式の指定

桁そろえ後の条件値

解説

比較項目

条件値

文字条件値

c+1-4

C'abcdef'

C'abcd'

下位の桁あふれ部分を切り捨てます。

固定小数点数条件値

z+2-10,3

N'-123456789.123'

N'-3456789.123'

整数部の上位の桁あふれ部分を切り捨てます。

z+2-10,3

N'1234567.890123'

N'1234567.890'

小数部の下位の桁あふれ部分を切り捨てます。

z+2-10,3

N'+123456789.012345'

N'+3456789.012'

整数部の上位の桁あふれ部分と,小数部の下位の桁あふれ部分を切り捨てます。

10進数条件値

d+2-10

N'+123456789012345'

N'+789012345'

上位の桁あふれ部分を切り捨てます。条件値は符号を含めて10桁です。

日付条件値

g+3-8,1

D'2011113011'

D'20111130'

下位の桁あふれ部分を切り捨てます。

16進数条件値

w+1-8

X'6100620063006400

65006600'

X'6100620063006400'

入力データのエンコードに「UCS-2LE」を指定した場合

下位の桁あふれ部分を切り捨てます。

(凡例)

 :切り捨て部分です。

注※

日付条件値は,桁そろえの結果,日付として正しくないデータとなった場合でもエラーにしないで正常に扱われます。例えば,「11110103」や「20111133」などの存在しない日付,または計算機やほかのアプリケーションで表現ができないとされている年号でも,その条件値で比較します。

比較項目(セル)の扱い

cond-attributeが日付時刻(h)の比較項目(セル)同士の比較では,比較項目の長さ(桁数)を一致させてください。

cond-attributeが日付時刻(h)以外の比較項目(セル)同士の比較で,比較項目の長さ(バイト長/桁数)が等しくない場合,長い方の比較項目の長さを比較長として仮定します。

実際に入力したデータの長さが,仮定した比較長よりも不足している場合,文字属性は空白を,数値属性,日付属性および日付時刻属性は数字「0」を埋め字します。

埋め字によって,実際の入力セルデータおよび出力セルデータは変更されません。

cond-attributeの指定値

形式

埋め字の位置

埋め字データ

j,c

下位

空白

w,u,v

下位

空白※3

z※1

整数部

上位

数字「0」

小数部

下位

d

上位

数字「0」

h※4

日付

桁修飾文字あり

月・日ごとの上位

数字「0」

桁修飾文字なし

下位

時刻

桁修飾文字あり

時・分・秒ごとの上位

ミリ秒は下位

桁修飾文字なし

下位

g※2

桁修飾文字あり

年・月・日ごとの上位

数字「0」

桁修飾文字なし

下位

(凡例)

−:該当せず。

注※1

固定小数点数(z)同士の比較の場合,次の優先順位で桁を合わせます。

1.整数部の桁(p-s)の大きい方に,有効桁(p)と位(s)を合わせる。

【例1】

左辺の比較項目:有効桁(p)=10,位(s)=3(整数部7桁,小数部3桁)

右辺の比較項目:有効桁(p)=8,位(s)=5(整数部3桁,小数部5桁)

→左辺の比較項目(p=10,s=3)に合わせる。

【例2】

左辺の比較項目:有効桁(p)=6,位(s)=4(整数部2桁,小数部4桁)

右辺の比較項目:有効桁(p)=5,位(s)=1(整数部4桁,小数部1桁)

→右辺の比較項目(p=5,s=1)に合わせる。

2.整数部の桁(p-s)が同じ場合,位(s)の大きい方に合わせる。

【例3】

左辺の比較項目:有効桁(p)=13,位(s)=8(整数部5桁,小数部8桁)

右辺の比較項目:有効桁(p)=10,位(s)=5(整数部5桁,小数部5桁)

→左辺の比較項目(p=13,s=8)に合わせる。

注※2

日付(g)同士の比較で2桁年号と4桁年号を比較する場合,2桁年号を4桁年号に補正して比較します。

基準年よりも小さい場合は1900を,基準年以上の場合は2000を2桁年号に加算した値に補正します。なお,基準年に0を指定した場合,常に1900を加算した値にしか補正されないので注意してください。

2桁年号(yy)

4桁年号補正

yy<基準年

20yy

基準年=70:69→2069年

yy≧基準年

19yy

基準年=70:70→1970年

基準年=0:69→1969年,70→1970年

注※3

入力データのエンコードが「UCS-2LE」,「UCS-2BE」,「UTF-16LE」または「UTF-16BE」の場合は,「UCS-2」の文字コードで埋め字します。

入力データのエンコードが「UCS-4LE」,「UCS-4BE」,「UTF-32LE」または「UTF-32BE」の場合は,「UCS-4」の文字コードで埋め字します。

「UCS-2」および「UCS-4」の文字コードについては,「表H-3 ASCII対応予約文字一覧」を参照してください。

注※4

日付時刻(h)は,入力データの桁または埋め字の結果によって,データ形式不正と判断される場合があります。日付時刻データの端数処理については,「付録J 日付時刻データの形式(SORT EEの機能)」を参照してください。

比較項目同士の組み合わせ

比較項目同士の比較ができる属性の組み合わせは次のとおりです。

項目1の属性

項目2の属性

j

c

z

d

g

h

w

u

v

j

c

z

d

g

h

w

u

v

(凡例)

○:比較できる組み合わせ

−:比較できない組み合わせ

{AND|OR}

複数の条件式を指定する場合,論理演算子「AND」(論理積)または「OR」(論理和)を指定して条件式を結合します。

  • 「AND」と「OR」が混在した場合は,「AND」を判定後,「OR」を判定します。

  • 条件式を括弧で囲むことによって,論理演算の順序を変えることができます。

  • 括弧の入れ子は24レベルまで指定できます。条件式と括弧の間に空白またはタブを置くことができます。

  • 論理演算子(ANDまたはOR)と括弧の間には,空白またはタブが必要です。

  • exsortコマンドに指定する場合は,選択条件式全体をダブルクォーテーションで囲んでください。

  • exsortパラメタファイルに指定する場合は,選択条件式をダブルクォーテーションで囲まないでください。