Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

%TRUNCATE

指定された長さになるまで文字列を切り捨ててから EXACT 照合に適用する照合関数です。

Synopsis

%TRUNCATE(expression[,length])

引数

expression 列名、文字リテラル、または他の関数の結果となる文字列式。基本となるデータ型は、任意の文字タイプ (CHAR や VARCHAR2 など) とすることができます。expression にはサブクエリを指定できます。
length オプション — 切り捨てを行った結果の長さ。整数として指定します。expression の先頭から length の文字数までを返します。length を省略すると、%TRUNCATE 照合は %EXACT 照合と同じになります。((length)) のように二重括弧で length を囲むと、リテラル置換を抑制できます。

説明

%TRUNCATE は、指定された長さになるまで expression を切り捨ててから EXACT 照合シーケンスで返します。

EXACT 照合は、まず純粋な数値 (x=+x としての値) を数値順で並べ、次に他のすべての文字列は文字列照合シーケンス順で並べます。EXACT 文字列照合シーケンスは、ANSI 標準の ASCII 照合シーケンスと同じものです。数字は大文字のアルファベット文字の前に照合され、大文字のアルファベット文字は小文字のアルファベット文字の前に照合されます。句読点文字は、そのシーケンスのそれぞれの場所で照合されます。

%TRUNCATE は NULL を変更せずに渡します。

%TRUNCATE は、Caché SQL の拡張機能であり、SQL 検索クエリ用として使用するものです。

以下の例は %TRUNCATE を使用して、Name 値の最初の 4 文字を返します。

SELECT TOP 5 Name,%TRUNCATE(Name,4) AS ShortName
FROM Sample.Person

以下の例では、%TRUNCATE をサブクエリに適用しています。

SELECT TOP 5 Name, %TRUNCATE((SELECT Name FROM Sample.Company),10) AS Company
FROM Sample.Person

以下の例では、GROUP BY 節で %TRUNCATE を使用して、各文字で始まる名前の数を返すアルファベット・リストを作成しています。

SELECT Name AS FirstLetter,COUNT(Name) AS NameCount 
FROM Sample.Person GROUP BY %TRUNCATE(Name,1) ORDER BY Name 

以下の 2 つの例は、%TRUNCATE で EXACT 照合がどのように行われるかを示しています。最初の例にある ORDER BY では、Home_Street が切り捨てられて 2 文字になります。番地の最初の 2 文字はほぼ必ず数値になるので、Home_Street フィールドは、最初の 2 つの数字の数値順に並べられます。

SELECT Name,Home_Street
FROM Sample.Person
ORDER BY %TRUNCATE(Home_Street,2)

2 番目の例にある ORDER BY では、Home_Street が切り捨てられて 4 文字になります。4 番目の文字が (空白など) 数字でない番地があるので、先頭が 4 文字以上の数字である Home_Street 値 は、最初に数値順に並べられます。数値でない文字列が 最初の 4 文字にある Home_Street 値は、文字列順に並べられます。

SELECT Name,Home_Street
FROM Sample.Person
ORDER BY %TRUNCATE(Home_Street,4)

関連項目

ASCII %EXACT %MVR %STRING %UPPER

FeedbackOpens in a new tab