CHANGE
サブストリング old をサブストリング new に、count で指定した回数だけ変更した string を戻します。count のデフォルト値は 1 です。count を指定する場合、それはゼロか正の整数でなければなりません。ゼロを指定すると、string に出現する old は、すべて new に変更されます。
サブストリング old について検査される string 内のバイト位置を、 開始バイト位置 (start) および長さ (length) をバイトで指定することによって 限定することができます。start のデフォルト値は 1 です。start を指定する場合、それは正の整数でなければなりません。start が LENGTH(string) よりも大きければ、CHANGE 関数は無効になります。length を指定する場合、それはゼロか正の整数でなければなりません。length を省略するか、またはゼロを指定すると、バイト位置 start からの残りの string が検査されます。length が LENGTH(old) よりも小さければ、CHANGE 関数は無効になります。
サブストリング old および new の長さは違っても構いません。old を省略すると、サブストリング new が、start によって指示されたバイト位置で、string に挿入されます。new を省略すると、 サブストリング old が string から削除されます。
いくつかの例を示します。
例 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 */