## Information About Character Strings

You can obtain a series of information about a character string.

### Prerequisites

You require the demo data for the SQL Tutorial.

Start the query tool SQL Studio as database administrator MONA with password RED and log on to the demo database instance DEMODB.

### Defining the Number of Characters

SELECT name, LENGTH(name) len
FROM hotel.customer
WHERE title = 'Mrs' ORDER BY len, name

Part of the customer table is sorted according to the surname length, with names of the same length sorted in alphabetical order.

Result

NAME | LEN
Doe | 3
Baker | 5
Brian | 5
Smith | 5
Porter | 6
Griffith | 8

See also:

SQL Reference Manual, LENGTH(a)

### Standardizing Notation

When applied to a character string, the INITCAP function returns a character string in which the initial letter of any given word appears in uppercase and all other letters in lowercase. This function can be used to standardize the notation for names, for example.

SELECT name, INITCAP(name) name_new
FROM hotel.customer
WHERE firstname IS NULL

Result

NAME | NAME_NEW
Datasoft | Datasoft
TOOLware | Toolware

See also:

SQL Reference Manual, INITCAP(x)

### Searching the Position of Character Strings

The INDEX function returns the position of a predefined substring in the character string. You can also choose to use a third parameter in the INDEX function to specify the starting position for the search and a fourth parameter to specify the number of occurrences of the substring after which the search is to start.

SELECT name, INDEX(name,'er') position_er
FROM hotel.customer
WHERE title = 'Mrs'

For part of the customer table, the position of the character string ‘er’ is to be defined in the last name.

Result

NAME | POSITION_ER
Porter | 5
Brian | 0
Griffith | 0
Smith | 0
Doe | 0
Baker | 4

See also:

SQL Reference Manual, INDEX(a,b,p,s)

### Defining the Minimum and Maximum in Character Strings

You can also apply the MAX and MIN functions to character strings.

SELECT title, MIN(name) min_name
FROM hotel.customer
GROUP BY title

The customer (male, female, or company) whose last name starts with the “earliest” letter, with regard to the code selected, is searched. If the initial letters of any given names are the same, the system compares the next characters in the strings.

Result

TITLE | MIN_NAME
Company | Datasoft
Mr | Brown
Mrs | Baker

See also:

SQL Reference Manual, MAX/MIN

To ensure that data is correctly sorted in alphabetical order, in particular in the case of foreign characters such as umlauts, the MAPCHAR(x,n,i) function should be used.

The GREATEST/LEAST(x,y,...) functions enable the greatest or least value to be found in a list of specified values. You can also apply these functions to character strings. GREATEST ('Mary', 'Mike', 'Martin')would return Mike as the result.

See also:

More examples for Data Query