mirror of
https://github.com/FirebirdSQL/firebird.git
synced 2025-01-22 17:23:03 +01:00
56e8c6224c
* Add multi-character TRIM function * Follow Adriano's suggestion Co-authored-by: Adriano dos Santos Fernandes <529415+asfernandes@users.noreply.github.com> --------- Co-authored-by: Dmitry Yemanov <dyemanov@users.noreply.github.com> Co-authored-by: Adriano dos Santos Fernandes <529415+asfernandes@users.noreply.github.com>
49 lines
1.4 KiB
Plaintext
49 lines
1.4 KiB
Plaintext
SQL Language Extension: TRIM
|
|
|
|
Function:
|
|
Remove leading, trailing or both substring from a string.
|
|
|
|
Author:
|
|
Adriano dos Santos Fernandes <adrianosf@uol.com.br>
|
|
|
|
Format:
|
|
<trim function> ::=
|
|
TRIM <left paren> [ [ <trim specification> ] [ <trim character> ] FROM ] <value expression> <right paren>
|
|
|
|
<trim specification> ::=
|
|
LEADING
|
|
| TRAILING
|
|
| BOTH
|
|
|
|
<trim character> ::=
|
|
<value expression>
|
|
|
|
<multi-character trim function> ::=
|
|
{ BTRIM | LTRIM | RTRIM } <left paren> <value expression> [ <comma> <trim character> ] <right paren>
|
|
|
|
Syntax Rules:
|
|
1) If <trim specification> is not specified, BOTH is assumed.
|
|
2) If <trim character> is not specified, ' ' is assumed.
|
|
3) If <trim specification> and/or <trim character> is specified, FROM should be specified.
|
|
4) If <trim specification> and <trim character> is not specified, FROM should not be specified.
|
|
5) multi-character trim function accepts a sequence of characters as the second argument and will remove all
|
|
leading, trailing, or both occurrences of any of these characters, regardless of their ordering.
|
|
|
|
Examples:
|
|
A)
|
|
select
|
|
rdb$relation_name, trim(leading 'RDB$' from rdb$relation_name)
|
|
from rdb$relations
|
|
where rdb$relation_name starting with 'RDB$';
|
|
|
|
B)
|
|
select
|
|
trim(rdb$relation_name) || ' is a system table'
|
|
from rdb$relations
|
|
where rdb$system_flag = 1;
|
|
|
|
C)
|
|
select
|
|
ltrim('baobab is a tree', 'aboe')
|
|
from rdb$database;
|