4. Elements of QUEL Statements : Functions : Scalar : String
 
Share this page                  
String
String functions perform a variety of operations on character data. String functions can be nested; for example,
left(right(x.name, size(x.name) - 1), 3)
returns the substring of "x.name" from character positions 2 through 4, and
concat(concat(x.lastname, ", "), x.firstname)
concatenates "x.lastname" with a comma and concatenates "x.firstname" with the first concatenation result. You can also use the + operator to concatenate strings:
x.lastname + ", " + x.firstname
The following table lists the string functions supported by QUEL. The expressions c1 and c2, representing the arguments, can be any of the string types, except where noted. The expressions len and nshift represent integer arguments.
Name
Result Type
Description
byteextract(c1,n)
byte
Returns the nth byte of c1. If n is larger than the length of the string, the result is a byte of ASCII 0. It does not support long varchar or long nvarchar arguments.
concat(c1,c2)
Any character data type
Concatenates one string to another. The result size is the sum of the sizes of the two arguments. If the result is a c or char string, it is padded with blanks to achieve the proper length. To determine the data type results of concatenating strings, see the following table, which shows the results of string concatenation.
left(c1,len)
Any character data type
Returns the leftmost len characters of c1. If the result is a fixed-length c or char string, it is the same length as c1, padded with blanks. The result format is the same as c1.
length(c1)
i2
If c1 is a fixed-length c or char string, returns the length of c1 without trailing blanks. If c1 is a variable-length string, returns the number of characters actually in c1.
locate(c1,c2)
i2
Returns the location of the first occurrence of c2 within c1, including trailing blanks from c2. The location is in the range 1 to size(c1). If c2 is not found, the function returns size(c1) + 1. (The function size() is described below, in this table.)
If c1 and c2 are different string data types, c2 is coerced into c1's datatype.
lowercase(c1)
Any character or Unicode data type
Converts all upper case characters in c1 to lower case.
pad(c1)
text or varchar
Returns c1 with trailing blanks appended to c1; for instance, if c1 is a varchar string that holds fifty characters but only has two characters, "pad(c1)" appends 48 trailing blanks to c1 to form the result.
right(c1,len)
Any character data type
Returns the rightmost len characters of c1. Trailing blanks are not removed first. If c1 is a fixed-length character string, the result is padded to the same length as c1. If c1 is a variable-length character string, no padding occurs. The result format is the same as c1.
shift(c1,nshift)
Any character data type
Shifts the string nshift places to the right if
nshift
> 0 and to the left if nshift < 0. If c1 is a fixed-length character string, the result is padded with blanks to the length of c1. If c1 is a variable-length character string, no padding occurs. The result format is the same as c1.
size(c1)
i2
Returns the declared size of c1 without removal of trailing blanks.
squeeze(c1)
text or varchar
Compresses white space. White space is defined as any sequence of blanks, null characters, newlines (line feeds), carriage returns, horizontal tabs and form feeds (vertical tabs). Trims white space from the beginning and end of the string, and replaces all other white space with single blanks. This function is useful for comparisons. The value for c1 must be a string of variable-length character string data type (not fixed-length character data type). The result is the same length as the argument.
trim(c1)
text or varchar
Returns c1 without trailing blanks. The result has the same length as c1.
notrim(c1)
Any character string variable
Retains trailing blanks when placing a value in a varchar column. You can only use this function in an embedded QUEL program. For more information, see the Embedded QUEL Companion Guide.
uppercase(c1)
any character or Unicode data type
Converts all lower case characters in c1 to upper case.
charextract(c1,n)
varchar
Returns the nth byte of c1. If n is larger than the length of the string, the result is a blank character.
soundex
any character data type
Returns a four-character field that can be used to find similar sounding strings. For example, SMITH and SMYTHE produce the same soundex code. If there are less than three characters, the result is padded by trailing zero(s). If there are more than three characters, the result is achieved by dropping the rightmost digit(s).
This function is useful for finding like-sounding strings quickly. A list of similar sounding strings can be shown in a search list rather than just the next strings in the index.
The following table shows the results of concatenating expressions of various character data types:
1st String
2nd String
Trim Blanks
 
Result Type
from 1st?
from 2nd?
C
c
Yes
c
 
text
Yes
c
 
char
Yes
c
 
varchar
Yes
c
text
c
No
c
 
text
No
No
text
 
char
No
Yes
text
 
varchar
No
No
text
char
c
Yes
c
 
text
Yes
No
text
 
char
No
char
 
varchar
No
char
varchar
c
No
 
c
 
text
No
No
text
 
char
No
 
char
 
varchar
No
No
varchar
When concatenating more than two operands, the DBMS Server evaluates expressions from left to right. For example: varchar + char + varchar is evaluated as (varchar+char)+varchar. To control concatenation results for strings with trailing blanks, use the trim, notrim, and pad functions.