文字ストリング関数

次の表は、文字列を操作するための関数について説明したものである。

メモ: Netezza Performance ServerSQL 文字列比較では、末尾のスペースは無視されます。
表 1. 文字関数
名前 説明
ascii(s) 指定されたストリングの先頭文字の ASCII 数値を返します。 この関数の NCHAR 版については、unicode(s) を参照してください。
btrim(s) 指定されたストリングの両端から、スペースを削除します。
btrim(s,t) ストリング s の両端から、存在するストリング t の文字を削除します。
chr(n) 指定された ASCII 値の文字を返します。 この関数の NCHAR 版については、unichar(n) を参照してください。
initcap(s) 指定されたストリングの各単語の先頭文字を大文字にします。
instr(s1,s2[,n[,m]]) ストリング s1 内のサブストリング s2 の位置を返します。 instr 関数では nchar 型と nvarchar 型のストリングもサポートされます。 以下の引数はオプションです。
n
検索を開始する位置。 n の正負については以下のとおりです。
  • 正の場合。左から右にカウントした位置を表し、検索は左から右に実行されます。
  • 負の場合。右から左にカウントした位置を表し、検索は右から左に実行されます。
デフォルトは 1 です。
m
何番目に現れる当該サブストリングを検索対象とするかを示す値。 デフォルトは 1 (1 番目に現れるものが検索対象) です。

戻り値は、ストリング s1 内でのサブストリング s2 の位置を指定する整数です。

length(s) 指定されたストリングの長さを返します。
lower(s) 指定されたストリングを小文字に変換します。
lpad(s,n[,t]) ストリング s の左側に文字を埋め込んで、長さが n の新規ストリングを作成します。 オプションの引数 t は、埋め込み文字を指定します。デフォルトはブランクです。 n が長さ s よりも短い場合、システムは、指定された長さになるように s を切り捨てます。
ltrim(s) 指定されたストリングの左端から、スペースを削除します。
ltrim(s,t) 文字列 's の左端から、文字列 'tに含まれる文字の出現箇所をトリムする。
repeat(s,n) 文字列 's n何度も繰り返す。 結果として得られるストリングが、varchar の最大長である 64,000 文字を超えた場合は、64,000 文字になるように切り捨てが行われます。
rpad(s,n) ストリング s の長さが n になるように右側にスペースを埋め込みます。 3 つ目のオプション引数 (t) を使い、pad char を指定することも可能です。 埋め込み先のストリングより長さ引数が短い場合は、指定された長さまでストリングが切り捨てられます。
rtrim(s) ストリング s の末尾のスペースを削除します。
rtrim(s,t) 文字列 's の右端から、文字列 'tに含まれる文字の出現回数をトリムする。
strpos(s,b) ストリング s 内の従属ストリング b の開始位置を指定します。
substr(s,p,l) ストリング s における、位置 p で始まる長さ l 文字のサブストリングを返します。 位置 1 は、ストリングの先頭です。 例:
  • select substr('abcdefg',1,4); は、abcd を返します。
  • select substr('abcdefg',4,1); は、d を返します。
指定された長さでは元のストリングの範囲をサブストリングが超えてしまう場合、元のストリングの範囲外の位置は無視されます。 例:
  • select substr('abcdefg',3,9); は、5 文字のサブストリング cdefg を返します。
  • select substr('abcdefg',9,3); はヌル・ストリング、つまり長さ 0 のストリングを返します。
指定された開始位置 p がゼロまたは負の場合は、ansi_substring 実行時パラメーターによって substr 関数の動作が決まります。
ansi_substring=true
ansi_substring=true (デフォルト設定) の場合:
  • 位置 0 は、位置 1 から左方に 1 つ目の位置です。
  • 負の開始位置は、位置 0 から左方にカウントされます。 サブストリングには、指定した長さに至るまでの、右方に続く文字が含められます。
例:
  • select substr('abcdefg',0,4); は、abc を返します
  • select substr('abcdefg',-2,4); は、a を返します
  • select substr('abcdefg',-5,8); は、ab を返します
ansi_substring=false
ansi_substring=false の場合:
  • 位置 0 は、位置 1 に相当します。
  • 負の開始位置は、ストリングの右端の文字から左方にカウントされます。 サブストリングには、指定した長さに至るまでの、右方に続く文字が含められます。
例:
  • select substr('abcdefg',0,4); は、abcd を返します
  • select substr('abcdefg',-2,4); は、fg を返します
  • select substr('abcdefg',-5,8); は、cdefg を返します
translate(s,from,to) from セット内の 1 つの文字と一致する s 内のあらゆる文字を、対応する to セット内の文字と置き換えます。 例えば、translate(‘12345’,’14’,’ax’) returns ‘a23x5’などです。
upper(s) ストリング s を大文字に変換します。
unichr(n) 指定された ASCII 値の文字を返します。 chr() 関数に相当します。 この関数は、コード・ポイントが有効範囲内にあることを検査し、コード・ポイントが有効範囲外の U+D800 から U+DFFF (10 進数の 55,296 から 57,343) である場合はエラーを表示します。
unicode(s) ascii() の NCHAR 版です。 文字列 's の最初の文字の Unicode 値を返します。 6文字はLatin9とUnicodeで値が異なるため、別の関数が定義されている。
unicodes(s,unit,base) ストリング s に含まれる各文字の Unicode 値を返します。 デフォルトでは、ストリングのみを指定すると、関数が UTF-32 の 16 進数字表記で値を返します。 unit 値には 8、16、または 32 を指定します。返される値はそれぞれ、UTF-8、UTF-16、UTF-32 のプロトコルになります。 base 値には、大文字または小文字の‘oct’、‘dec’、‘hex’(または 8、10、16) のいずれかを指定し、基数を制御します。