||
(Concatenate)¶
Concatenate two strings to create a longer string
Syntax¶
expr1 || expr2
Arguments¶
Parameter |
Description |
---|---|
|
String expressions |
Returns¶
Returns the same type as the argument supplied.
Notes¶
Both values must be strings, and can’t be
NULL
. IfNULLS
are expected, use COALESCE.Blue removes the trailing spaces from strings by default, which may lead to unexpected results. See the examples for more information.
Examples¶
For these examples, assume a table named nba
, with the following structure:
CREATE TABLE nba
(
Name TEXT,
Team TEXT,
Number TINYINT,
Position TEXT,
Age TINYINT,
Height TEXT,
Weight REAL,
College TEXT,
Salary FLOAT
);
Here’s a peek at the table contents (Download nba.csv
):
Name |
Team |
Number |
Position |
Age |
Height |
Weight |
College |
Salary |
---|---|---|---|---|---|---|---|---|
Avery Bradley |
Boston Celtics |
0.0 |
PG |
25.0 |
6-2 |
180.0 |
Texas |
7730337.0 |
Jae Crowder |
Boston Celtics |
99.0 |
SF |
25.0 |
6-6 |
235.0 |
Marquette |
6796117.0 |
John Holland |
Boston Celtics |
30.0 |
SG |
27.0 |
6-5 |
205.0 |
Boston University |
|
R.J. Hunter |
Boston Celtics |
28.0 |
SG |
22.0 |
6-5 |
185.0 |
Georgia State |
1148640.0 |
Jonas Jerebko |
Boston Celtics |
8.0 |
PF |
29.0 |
6-10 |
231.0 |
5000000.0 |
|
Amir Johnson |
Boston Celtics |
90.0 |
PF |
29.0 |
6-9 |
240.0 |
12000000.0 |
|
Jordan Mickey |
Boston Celtics |
55.0 |
PF |
21.0 |
6-8 |
235.0 |
LSU |
1170960.0 |
Kelly Olynyk |
Boston Celtics |
41.0 |
C |
25.0 |
7-0 |
238.0 |
Gonzaga |
2165160.0 |
Terry Rozier |
Boston Celtics |
12.0 |
PG |
22.0 |
6-2 |
190.0 |
Louisville |
1824360.0 |
Concatenate two values¶
Convert values to string types before concatenation
nba=> SELECT ("Age" :: TEXT) || "Name" FROM nba ORDER BY 1 DESC LIMIT 5;
?column?
----------------
40Tim Duncan
40Kevin Garnett
40Andre Miller
39Vince Carter
39Pablo Prigioni
Concatenate two strings¶
t=> SELECT 'Hello, this is' || ' nice';
?column?
-------------------
Hello, this is nice
Warning
Trailing spaces are trimmed by default. For example,
t=> SELECT 'Hello, this is ' || 'nice';
?column?
-------------------
Hello, this isnice
This may sometimes lead to an unexpected result. See the example below for a remedy.
Adding spaces¶
Add a space and concatenate it first to bypass the space trimming issue
nba=> SELECT ("Age" :: TEXT || (' ' || "Name")) FROM nba ORDER BY 1 DESC LIMIT 5;
?column?
-----------------
40 Tim Duncan
40 Kevin Garnett
40 Andre Miller
39 Vince Carter
39 Pablo Prigioni