CHANGE

1. Syntax

1  CHANGE ( haystack ,
1  old ,
2.1 new
1  , new
2  ,
1! 1
1 count
3  ,
1! 1
1 start
4  ,
1! 0
1 length
5  )
注: 最後に指定された引数の後のコンマは省略可能です。

haystack を検索し、1 つ以上の old のオカレンスを new に変更します。

Returns
サブストリング old をサブストリング new に、count で指定した回数だけ変更した haystack を戻します。
haystack
検索するストリング。
old
変更する旧ストリング。この引数が省略されると、新規ストリングは start の位置に挿入されます。
new
新規ストリング。この引数が省略されると、oldcount 個のオカレンスが削除されます。
count
変更する old のオカレンスの 最大数。負でない整数でなければなりません。デフォルト値は 1 です。値が 0 の場合、 old ストリングのフィールドが省略されない限り (この場合は、値が 1 であることと同等です)、すべてのオカレンスが変更されます。
start
old のオカレンスの検索を開始する haystack 内の位置 (バイト単位)。正の整数である必要があります。デフォルト値は 1 です。start が出力レコードの現在の長さより大きければ、この関数は無効になります。
length
old のオカレンスを検索する haystack 内のバイト数。負でない整数でなければなりません。値が 0 の場合、start から haystack の残りの部分が検索されることを示します。lengthold より小さければ、この関数は無効になります。
例 1
CHANGE('abcabcabc','abc','DeF')      ►    'DeFabcabc'
        /*  1 (default) occurrence of old changed           */
例 2
CH('abcabcabc','abc','DeF',2)        ►    'DeFDeFabc'
        /*  2 occurrences of old changed                    */
例 3
CHANGE('abcabcabc','abc','DeF',0)    ►    'DeFDeFDeF'
       /*  count = 0, all occurrences of old changed        */
例 4
CH('abcabcabc','abc','DeF',,4)       ►    'abcDeFabc'
       /*  1 (default) occurrences of old changed,          */
       /*  starting at position 4                           */
例 5
CHANGE('aaaaaaaa','a','A',0,3,2)     ►    'aaAAaaaa'
       /*  all occurrences of old changed, starting at      */
       /*  position 3 for a length of 2                     */
例 6
CH('abcabcabc','a',,0)               ►    'bcbcbc'
       /*  new omitted, count = 0,                          */
       /*  all occurrences of old deleted                   */
例 7
CHANGE('abc',,'def',,2)              ►    'adefbc'
       /*  old omitted, new inserted, starting at           */
       /*  position 2                                       */