%PLUS (SQL)
Synopsis
%PLUS(expression) %PLUS expression
引数
引数 | 説明 |
---|---|
expression | 列名、数値や文字列リテラル、算術式、または別の関数の結果となる式。基本となるデータ型は、任意の文字タイプとすることができます。 |
説明
%PLUS は、数値や数値文字列をキャノニック形式に変換してから、これらの expression 値を数値照合順に返します。
数値には、先頭と末尾のゼロ、先頭にある複数のプラス符号とマイナス符号、1 つの小数点 (.)、および指数記号 (E) を指定できます。キャノニック形式で、すべての算術演算が実行され、指数が展開され、単体のマイナス符号が先頭に付くか符号なしになり、先頭と末尾のゼロが削除されます。
数値リテラルは、文字列を囲む区切り文字を付けて指定することも、付けないで指定することもできます。数値以外の文字が文字列にあると、%PLUS では、最初の数値以外の文字で数値を切り捨て、数値部分をキャノニック形式で返します。数値でない文字列 (数値以外の文字で始まる文字列) を 0 として返します。%PLUS はさらに、NULL を 0 として返します。
%PLUS は、InterSystems SQL の拡張機能であり、SQL 検索クエリ用として使用するものです。
%SYSTEM.UtilOpens in a new tab クラスの Collation()Opens in a new tab メソッドを使用すると、ObjectScript で同じ照合変換を実行できます。
WRITE $SYSTEM.Util.Collation("++007.500",3)
%PLUS を %MVR と比べると、%MVR では文字列内の数値部分文字列に基づいて文字列をソートしている点が異なります。
例
以下の例は %PLUS を使用して、Home_Street の住所を数値の順に返します。
SELECT Name,Home_Street
FROM Sample.Person
ORDER BY %PLUS(Home_Street)
上記の例では、ストリート・アドレスの整数部分が昇順の数値順に配列されています。これを以下の ORDER BY の例と比較してください。こちらでは、レコードは照合順のストリート・アドレスで配列されています。
SELECT Name,Home_Street
FROM Sample.Person
ORDER BY Home_Street