1 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>9.4. String Functions and Operators</title><link rel="stylesheet" type="text/css" href="stylesheet.css" /><link rev="made" href="pgsql-docs@lists.postgresql.org" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="prev" href="functions-math.html" title="9.3. Mathematical Functions and Operators" /><link rel="next" href="functions-binarystring.html" title="9.5. Binary String Functions and Operators" /></head><body id="docContent" class="container-fluid col-10"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center">9.4. String Functions and Operators</th></tr><tr><td width="10%" align="left"><a accesskey="p" href="functions-math.html" title="9.3. Mathematical Functions and Operators">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="functions.html" title="Chapter 9. Functions and Operators">Up</a></td><th width="60%" align="center">Chapter 9. Functions and Operators</th><td width="10%" align="right"><a accesskey="h" href="index.html" title="PostgreSQL 18.0 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="functions-binarystring.html" title="9.5. Binary String Functions and Operators">Next</a></td></tr></table><hr /></div><div class="sect1" id="FUNCTIONS-STRING"><div class="titlepage"><div><div><h2 class="title" style="clear: both">9.4. String Functions and Operators <a href="#FUNCTIONS-STRING" class="id_link">#</a></h2></div></div></div><div class="toc"><dl class="toc"><dt><span class="sect2"><a href="functions-string.html#FUNCTIONS-STRING-FORMAT">9.4.1. <code class="function">format</code></a></span></dt></dl></div><p>
3 This section describes functions and operators for examining and
4 manipulating string values. Strings in this context include values
5 of the types <code class="type">character</code>, <code class="type">character varying</code>,
6 and <code class="type">text</code>. Except where noted, these functions and operators
7 are declared to accept and return type <code class="type">text</code>. They will
8 interchangeably accept <code class="type">character varying</code> arguments.
9 Values of type <code class="type">character</code> will be converted
10 to <code class="type">text</code> before the function or operator is applied, resulting
11 in stripping any trailing spaces in the <code class="type">character</code> value.
13 <acronym class="acronym">SQL</acronym> defines some string functions that use
14 key words, rather than commas, to separate
15 arguments. Details are in
16 <a class="xref" href="functions-string.html#FUNCTIONS-STRING-SQL" title="Table 9.9. SQL String Functions and Operators">Table 9.9</a>.
17 <span class="productname">PostgreSQL</span> also provides versions of these functions
18 that use the regular function invocation syntax
19 (see <a class="xref" href="functions-string.html#FUNCTIONS-STRING-OTHER" title="Table 9.10. Other String Functions and Operators">Table 9.10</a>).
20 </p><div class="note"><h3 class="title">Note</h3><p>
21 The string concatenation operator (<code class="literal">||</code>) will accept
22 non-string input, so long as at least one input is of string type, as shown
23 in <a class="xref" href="functions-string.html#FUNCTIONS-STRING-SQL" title="Table 9.9. SQL String Functions and Operators">Table 9.9</a>. For other cases, inserting an
24 explicit coercion to <code class="type">text</code> can be used to have non-string input
26 </p></div><div class="table" id="FUNCTIONS-STRING-SQL"><p class="title"><strong>Table 9.9. <acronym class="acronym">SQL</acronym> String Functions and Operators</strong></p><div class="table-contents"><table class="table" summary="SQL String Functions and Operators" border="1"><colgroup><col /></colgroup><thead><tr><th class="func_table_entry"><p class="func_signature">
34 </p></th></tr></thead><tbody><tr><td class="func_table_entry"><p class="func_signature">
35 <a id="id-1.5.8.10.5.2.2.1.1.1.1" class="indexterm"></a>
36 <code class="type">text</code> <code class="literal">||</code> <code class="type">text</code>
37 → <code class="returnvalue">text</code>
40 Concatenates the two strings.
43 <code class="literal">'Post' || 'greSQL'</code>
44 → <code class="returnvalue">PostgreSQL</code>
45 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
46 <code class="type">text</code> <code class="literal">||</code> <code class="type">anynonarray</code>
47 → <code class="returnvalue">text</code>
49 <p class="func_signature">
50 <code class="type">anynonarray</code> <code class="literal">||</code> <code class="type">text</code>
51 → <code class="returnvalue">text</code>
54 Converts the non-string input to text, then concatenates the two
55 strings. (The non-string input cannot be of an array type, because
56 that would create ambiguity with the array <code class="literal">||</code>
57 operators. If you want to concatenate an array's text equivalent,
58 cast it to <code class="type">text</code> explicitly.)
61 <code class="literal">'Value: ' || 42</code>
62 → <code class="returnvalue">Value: 42</code>
63 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
64 <a id="id-1.5.8.10.5.2.2.3.1.1.1" class="indexterm"></a>
65 <code class="function">btrim</code> ( <em class="parameter"><code>string</code></em> <code class="type">text</code>
66 [<span class="optional">, <em class="parameter"><code>characters</code></em> <code class="type">text</code> </span>] )
67 → <code class="returnvalue">text</code>
70 Removes the longest string containing only characters
71 in <em class="parameter"><code>characters</code></em> (a space by default)
72 from the start and end of <em class="parameter"><code>string</code></em>.
75 <code class="literal">btrim('xyxtrimyyx', 'xyz')</code>
76 → <code class="returnvalue">trim</code>
77 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
78 <a id="id-1.5.8.10.5.2.2.4.1.1.1" class="indexterm"></a>
79 <a id="id-1.5.8.10.5.2.2.4.1.1.2" class="indexterm"></a>
80 <code class="type">text</code> <code class="literal">IS</code> [<span class="optional"><code class="literal">NOT</code></span>] [<span class="optional"><em class="parameter"><code>form</code></em></span>] <code class="literal">NORMALIZED</code>
81 → <code class="returnvalue">boolean</code>
84 Checks whether the string is in the specified Unicode normalization
85 form. The optional <em class="parameter"><code>form</code></em> key word specifies the
86 form: <code class="literal">NFC</code> (the default), <code class="literal">NFD</code>,
87 <code class="literal">NFKC</code>, or <code class="literal">NFKD</code>. This expression can
88 only be used when the server encoding is <code class="literal">UTF8</code>. Note
89 that checking for normalization using this expression is often faster
90 than normalizing possibly already normalized strings.
93 <code class="literal">U&'\0061\0308bc' IS NFD NORMALIZED</code>
94 → <code class="returnvalue">t</code>
95 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
96 <a id="id-1.5.8.10.5.2.2.5.1.1.1" class="indexterm"></a>
97 <code class="function">bit_length</code> ( <code class="type">text</code> )
98 → <code class="returnvalue">integer</code>
101 Returns number of bits in the string (8
102 times the <code class="function">octet_length</code>).
105 <code class="literal">bit_length('jose')</code>
106 → <code class="returnvalue">32</code>
107 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
108 <a id="id-1.5.8.10.5.2.2.6.1.1.1" class="indexterm"></a>
109 <a id="id-1.5.8.10.5.2.2.6.1.1.2" class="indexterm"></a>
110 <a id="id-1.5.8.10.5.2.2.6.1.1.3" class="indexterm"></a>
111 <code class="function">char_length</code> ( <code class="type">text</code> )
112 → <code class="returnvalue">integer</code>
114 <p class="func_signature">
115 <a id="id-1.5.8.10.5.2.2.6.1.2.1" class="indexterm"></a>
116 <code class="function">character_length</code> ( <code class="type">text</code> )
117 → <code class="returnvalue">integer</code>
120 Returns number of characters in the string.
123 <code class="literal">char_length('josé')</code>
124 → <code class="returnvalue">4</code>
125 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
126 <a id="FUNCTION-LOWER" class="indexterm"></a>
127 <code class="function">lower</code> ( <code class="type">text</code> )
128 → <code class="returnvalue">text</code>
131 Converts the string to all lower case, according to the rules of the
135 <code class="literal">lower('TOM')</code>
136 → <code class="returnvalue">tom</code>
137 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
138 <a id="id-1.5.8.10.5.2.2.8.1.1.1" class="indexterm"></a>
139 <code class="function">lpad</code> ( <em class="parameter"><code>string</code></em> <code class="type">text</code>,
140 <em class="parameter"><code>length</code></em> <code class="type">integer</code>
141 [<span class="optional">, <em class="parameter"><code>fill</code></em> <code class="type">text</code> </span>] )
142 → <code class="returnvalue">text</code>
145 Extends the <em class="parameter"><code>string</code></em> to length
146 <em class="parameter"><code>length</code></em> by prepending the characters
147 <em class="parameter"><code>fill</code></em> (a space by default). If the
148 <em class="parameter"><code>string</code></em> is already longer than
149 <em class="parameter"><code>length</code></em> then it is truncated (on the right).
152 <code class="literal">lpad('hi', 5, 'xy')</code>
153 → <code class="returnvalue">xyxhi</code>
154 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
155 <a id="id-1.5.8.10.5.2.2.9.1.1.1" class="indexterm"></a>
156 <code class="function">ltrim</code> ( <em class="parameter"><code>string</code></em> <code class="type">text</code>
157 [<span class="optional">, <em class="parameter"><code>characters</code></em> <code class="type">text</code> </span>] )
158 → <code class="returnvalue">text</code>
161 Removes the longest string containing only characters in
162 <em class="parameter"><code>characters</code></em> (a space by default) from the start of
163 <em class="parameter"><code>string</code></em>.
166 <code class="literal">ltrim('zzzytest', 'xyz')</code>
167 → <code class="returnvalue">test</code>
168 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
169 <a id="FUNCTION-NORMALIZE" class="indexterm"></a>
170 <a id="id-1.5.8.10.5.2.2.10.1.1.2" class="indexterm"></a>
171 <code class="function">normalize</code> ( <code class="type">text</code>
172 [<span class="optional">, <em class="parameter"><code>form</code></em> </span>] )
173 → <code class="returnvalue">text</code>
176 Converts the string to the specified Unicode
177 normalization form. The optional <em class="parameter"><code>form</code></em> key word
178 specifies the form: <code class="literal">NFC</code> (the default),
179 <code class="literal">NFD</code>, <code class="literal">NFKC</code>, or
180 <code class="literal">NFKD</code>. This function can only be used when the
181 server encoding is <code class="literal">UTF8</code>.
184 <code class="literal">normalize(U&'\0061\0308bc', NFC)</code>
185 → <code class="returnvalue">U&'\00E4bc'</code>
186 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
187 <a id="id-1.5.8.10.5.2.2.11.1.1.1" class="indexterm"></a>
188 <code class="function">octet_length</code> ( <code class="type">text</code> )
189 → <code class="returnvalue">integer</code>
192 Returns number of bytes in the string.
195 <code class="literal">octet_length('josé')</code>
196 → <code class="returnvalue">5</code> (if server encoding is UTF8)
197 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
198 <a id="id-1.5.8.10.5.2.2.12.1.1.1" class="indexterm"></a>
199 <code class="function">octet_length</code> ( <code class="type">character</code> )
200 → <code class="returnvalue">integer</code>
203 Returns number of bytes in the string. Since this version of the
204 function accepts type <code class="type">character</code> directly, it will not
205 strip trailing spaces.
208 <code class="literal">octet_length('abc '::character(4))</code>
209 → <code class="returnvalue">4</code>
210 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
211 <a id="id-1.5.8.10.5.2.2.13.1.1.1" class="indexterm"></a>
212 <code class="function">overlay</code> ( <em class="parameter"><code>string</code></em> <code class="type">text</code> <code class="literal">PLACING</code> <em class="parameter"><code>newsubstring</code></em> <code class="type">text</code> <code class="literal">FROM</code> <em class="parameter"><code>start</code></em> <code class="type">integer</code> [<span class="optional"> <code class="literal">FOR</code> <em class="parameter"><code>count</code></em> <code class="type">integer</code> </span>] )
213 → <code class="returnvalue">text</code>
216 Replaces the substring of <em class="parameter"><code>string</code></em> that starts at
217 the <em class="parameter"><code>start</code></em>'th character and extends
218 for <em class="parameter"><code>count</code></em> characters
219 with <em class="parameter"><code>newsubstring</code></em>.
220 If <em class="parameter"><code>count</code></em> is omitted, it defaults to the length
221 of <em class="parameter"><code>newsubstring</code></em>.
224 <code class="literal">overlay('Txxxxas' placing 'hom' from 2 for 4)</code>
225 → <code class="returnvalue">Thomas</code>
226 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
227 <a id="id-1.5.8.10.5.2.2.14.1.1.1" class="indexterm"></a>
228 <code class="function">position</code> ( <em class="parameter"><code>substring</code></em> <code class="type">text</code> <code class="literal">IN</code> <em class="parameter"><code>string</code></em> <code class="type">text</code> )
229 → <code class="returnvalue">integer</code>
232 Returns first starting index of the specified
233 <em class="parameter"><code>substring</code></em> within
234 <em class="parameter"><code>string</code></em>, or zero if it's not present.
237 <code class="literal">position('om' in 'Thomas')</code>
238 → <code class="returnvalue">3</code>
239 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
240 <a id="id-1.5.8.10.5.2.2.15.1.1.1" class="indexterm"></a>
241 <code class="function">rpad</code> ( <em class="parameter"><code>string</code></em> <code class="type">text</code>,
242 <em class="parameter"><code>length</code></em> <code class="type">integer</code>
243 [<span class="optional">, <em class="parameter"><code>fill</code></em> <code class="type">text</code> </span>] )
244 → <code class="returnvalue">text</code>
247 Extends the <em class="parameter"><code>string</code></em> to length
248 <em class="parameter"><code>length</code></em> by appending the characters
249 <em class="parameter"><code>fill</code></em> (a space by default). If the
250 <em class="parameter"><code>string</code></em> is already longer than
251 <em class="parameter"><code>length</code></em> then it is truncated.
254 <code class="literal">rpad('hi', 5, 'xy')</code>
255 → <code class="returnvalue">hixyx</code>
256 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
257 <a id="id-1.5.8.10.5.2.2.16.1.1.1" class="indexterm"></a>
258 <code class="function">rtrim</code> ( <em class="parameter"><code>string</code></em> <code class="type">text</code>
259 [<span class="optional">, <em class="parameter"><code>characters</code></em> <code class="type">text</code> </span>] )
260 → <code class="returnvalue">text</code>
263 Removes the longest string containing only characters in
264 <em class="parameter"><code>characters</code></em> (a space by default) from the end of
265 <em class="parameter"><code>string</code></em>.
268 <code class="literal">rtrim('testxxzx', 'xyz')</code>
269 → <code class="returnvalue">test</code>
270 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
271 <a id="id-1.5.8.10.5.2.2.17.1.1.1" class="indexterm"></a>
272 <code class="function">substring</code> ( <em class="parameter"><code>string</code></em> <code class="type">text</code> [<span class="optional"> <code class="literal">FROM</code> <em class="parameter"><code>start</code></em> <code class="type">integer</code> </span>] [<span class="optional"> <code class="literal">FOR</code> <em class="parameter"><code>count</code></em> <code class="type">integer</code> </span>] )
273 → <code class="returnvalue">text</code>
276 Extracts the substring of <em class="parameter"><code>string</code></em> starting at
277 the <em class="parameter"><code>start</code></em>'th character if that is specified,
278 and stopping after <em class="parameter"><code>count</code></em> characters if that is
279 specified. Provide at least one of <em class="parameter"><code>start</code></em>
280 and <em class="parameter"><code>count</code></em>.
283 <code class="literal">substring('Thomas' from 2 for 3)</code>
284 → <code class="returnvalue">hom</code>
287 <code class="literal">substring('Thomas' from 3)</code>
288 → <code class="returnvalue">omas</code>
291 <code class="literal">substring('Thomas' for 2)</code>
292 → <code class="returnvalue">Th</code>
293 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
294 <code class="function">substring</code> ( <em class="parameter"><code>string</code></em> <code class="type">text</code> <code class="literal">FROM</code> <em class="parameter"><code>pattern</code></em> <code class="type">text</code> )
295 → <code class="returnvalue">text</code>
298 Extracts the first substring matching POSIX regular expression; see
299 <a class="xref" href="functions-matching.html#FUNCTIONS-POSIX-REGEXP" title="9.7.3. POSIX Regular Expressions">Section 9.7.3</a>.
302 <code class="literal">substring('Thomas' from '...$')</code>
303 → <code class="returnvalue">mas</code>
304 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
305 <code class="function">substring</code> ( <em class="parameter"><code>string</code></em> <code class="type">text</code> <code class="literal">SIMILAR</code> <em class="parameter"><code>pattern</code></em> <code class="type">text</code> <code class="literal">ESCAPE</code> <em class="parameter"><code>escape</code></em> <code class="type">text</code> )
306 → <code class="returnvalue">text</code>
308 <p class="func_signature">
309 <code class="function">substring</code> ( <em class="parameter"><code>string</code></em> <code class="type">text</code> <code class="literal">FROM</code> <em class="parameter"><code>pattern</code></em> <code class="type">text</code> <code class="literal">FOR</code> <em class="parameter"><code>escape</code></em> <code class="type">text</code> )
310 → <code class="returnvalue">text</code>
313 Extracts the first substring matching <acronym class="acronym">SQL</acronym> regular expression;
314 see <a class="xref" href="functions-matching.html#FUNCTIONS-SIMILARTO-REGEXP" title="9.7.2. SIMILAR TO Regular Expressions">Section 9.7.2</a>. The first form has
315 been specified since SQL:2003; the second form was only in SQL:1999
316 and should be considered obsolete.
319 <code class="literal">substring('Thomas' similar '%#"o_a#"_' escape '#')</code>
320 → <code class="returnvalue">oma</code>
321 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
322 <a id="id-1.5.8.10.5.2.2.20.1.1.1" class="indexterm"></a>
323 <code class="function">trim</code> ( [<span class="optional"> <code class="literal">LEADING</code> | <code class="literal">TRAILING</code> | <code class="literal">BOTH</code> </span>]
324 [<span class="optional"> <em class="parameter"><code>characters</code></em> <code class="type">text</code> </span>] <code class="literal">FROM</code>
325 <em class="parameter"><code>string</code></em> <code class="type">text</code> )
326 → <code class="returnvalue">text</code>
329 Removes the longest string containing only characters in
330 <em class="parameter"><code>characters</code></em> (a space by default) from the
331 start, end, or both ends (<code class="literal">BOTH</code> is the default)
332 of <em class="parameter"><code>string</code></em>.
335 <code class="literal">trim(both 'xyz' from 'yxTomxx')</code>
336 → <code class="returnvalue">Tom</code>
337 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
338 <code class="function">trim</code> ( [<span class="optional"> <code class="literal">LEADING</code> | <code class="literal">TRAILING</code> | <code class="literal">BOTH</code> </span>] [<span class="optional"> <code class="literal">FROM</code> </span>]
339 <em class="parameter"><code>string</code></em> <code class="type">text</code> [<span class="optional">,
340 <em class="parameter"><code>characters</code></em> <code class="type">text</code> </span>] )
341 → <code class="returnvalue">text</code>
344 This is a non-standard syntax for <code class="function">trim()</code>.
347 <code class="literal">trim(both from 'yxTomxx', 'xyz')</code>
348 → <code class="returnvalue">Tom</code>
349 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
350 <a id="id-1.5.8.10.5.2.2.22.1.1.1" class="indexterm"></a>
351 <code class="function">unicode_assigned</code> ( <code class="type">text</code> )
352 → <code class="returnvalue">boolean</code>
355 Returns <code class="literal">true</code> if all characters in the string are
356 assigned Unicode codepoints; <code class="literal">false</code> otherwise. This
357 function can only be used when the server encoding is
358 <code class="literal">UTF8</code>.
359 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
360 <a id="id-1.5.8.10.5.2.2.23.1.1.1" class="indexterm"></a>
361 <code class="function">upper</code> ( <code class="type">text</code> )
362 → <code class="returnvalue">text</code>
365 Converts the string to all upper case, according to the rules of the
369 <code class="literal">upper('tom')</code>
370 → <code class="returnvalue">TOM</code>
371 </p></td></tr></tbody></table></div></div><br class="table-break" /><p>
372 Additional string manipulation functions and operators are available
373 and are listed in <a class="xref" href="functions-string.html#FUNCTIONS-STRING-OTHER" title="Table 9.10. Other String Functions and Operators">Table 9.10</a>. (Some of
374 these are used internally to implement
375 the <acronym class="acronym">SQL</acronym>-standard string functions listed in
376 <a class="xref" href="functions-string.html#FUNCTIONS-STRING-SQL" title="Table 9.9. SQL String Functions and Operators">Table 9.9</a>.)
377 There are also pattern-matching operators, which are described in
378 <a class="xref" href="functions-matching.html" title="9.7. Pattern Matching">Section 9.7</a>, and operators for full-text
379 search, which are described in <a class="xref" href="textsearch.html" title="Chapter 12. Full Text Search">Chapter 12</a>.
380 </p><div class="table" id="FUNCTIONS-STRING-OTHER"><p class="title"><strong>Table 9.10. Other String Functions and Operators</strong></p><div class="table-contents"><table class="table" summary="Other String Functions and Operators" border="1"><colgroup><col /></colgroup><thead><tr><th class="func_table_entry"><p class="func_signature">
388 </p></th></tr></thead><tbody><tr><td class="func_table_entry"><p class="func_signature">
389 <a id="id-1.5.8.10.7.2.2.1.1.1.1" class="indexterm"></a>
390 <code class="type">text</code> <code class="literal">^@</code> <code class="type">text</code>
391 → <code class="returnvalue">boolean</code>
394 Returns true if the first string starts with the second string
395 (equivalent to the <code class="function">starts_with()</code> function).
398 <code class="literal">'alphabet' ^@ 'alph'</code>
399 → <code class="returnvalue">t</code>
400 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
401 <a id="id-1.5.8.10.7.2.2.2.1.1.1" class="indexterm"></a>
402 <code class="function">ascii</code> ( <code class="type">text</code> )
403 → <code class="returnvalue">integer</code>
406 Returns the numeric code of the first character of the argument.
407 In <acronym class="acronym">UTF8</acronym> encoding, returns the Unicode code point
408 of the character. In other multibyte encodings, the argument must
409 be an <acronym class="acronym">ASCII</acronym> character.
412 <code class="literal">ascii('x')</code>
413 → <code class="returnvalue">120</code>
414 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
415 <a id="id-1.5.8.10.7.2.2.3.1.1.1" class="indexterm"></a>
416 <code class="function">chr</code> ( <code class="type">integer</code> )
417 → <code class="returnvalue">text</code>
420 Returns the character with the given code. In <acronym class="acronym">UTF8</acronym>
421 encoding the argument is treated as a Unicode code point. In other
422 multibyte encodings the argument must designate
423 an <acronym class="acronym">ASCII</acronym> character. <code class="literal">chr(0)</code> is
424 disallowed because text data types cannot store that character.
427 <code class="literal">chr(65)</code>
428 → <code class="returnvalue">A</code>
429 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
430 <a id="id-1.5.8.10.7.2.2.4.1.1.1" class="indexterm"></a>
431 <code class="function">concat</code> ( <em class="parameter"><code>val1</code></em> <code class="type">"any"</code>
432 [<span class="optional">, <em class="parameter"><code>val2</code></em> <code class="type">"any"</code> [<span class="optional">, ...</span>] </span>] )
433 → <code class="returnvalue">text</code>
436 Concatenates the text representations of all the arguments.
437 NULL arguments are ignored.
440 <code class="literal">concat('abcde', 2, NULL, 22)</code>
441 → <code class="returnvalue">abcde222</code>
442 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
443 <a id="id-1.5.8.10.7.2.2.5.1.1.1" class="indexterm"></a>
444 <code class="function">concat_ws</code> ( <em class="parameter"><code>sep</code></em> <code class="type">text</code>,
445 <em class="parameter"><code>val1</code></em> <code class="type">"any"</code>
446 [<span class="optional">, <em class="parameter"><code>val2</code></em> <code class="type">"any"</code> [<span class="optional">, ...</span>] </span>] )
447 → <code class="returnvalue">text</code>
450 Concatenates all but the first argument, with separators. The first
451 argument is used as the separator string, and should not be NULL.
452 Other NULL arguments are ignored.
455 <code class="literal">concat_ws(',', 'abcde', 2, NULL, 22)</code>
456 → <code class="returnvalue">abcde,2,22</code>
457 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
458 <a id="id-1.5.8.10.7.2.2.6.1.1.1" class="indexterm"></a>
459 <code class="function">format</code> ( <em class="parameter"><code>formatstr</code></em> <code class="type">text</code>
460 [<span class="optional">, <em class="parameter"><code>formatarg</code></em> <code class="type">"any"</code> [<span class="optional">, ...</span>] </span>] )
461 → <code class="returnvalue">text</code>
464 Formats arguments according to a format string;
465 see <a class="xref" href="functions-string.html#FUNCTIONS-STRING-FORMAT" title="9.4.1. format">Section 9.4.1</a>.
466 This function is similar to the C function <code class="function">sprintf</code>.
469 <code class="literal">format('Hello %s, %1$s', 'World')</code>
470 → <code class="returnvalue">Hello World, World</code>
471 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
472 <a id="id-1.5.8.10.7.2.2.7.1.1.1" class="indexterm"></a>
473 <code class="function">initcap</code> ( <code class="type">text</code> )
474 → <code class="returnvalue">text</code>
477 Converts the first letter of each word to upper case and the
478 rest to lower case. Words are sequences of alphanumeric
479 characters separated by non-alphanumeric characters.
482 <code class="literal">initcap('hi THOMAS')</code>
483 → <code class="returnvalue">Hi Thomas</code>
484 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
485 <a id="id-1.5.8.10.7.2.2.8.1.1.1" class="indexterm"></a>
486 <code class="function">casefold</code> ( <code class="type">text</code> )
487 → <code class="returnvalue">text</code>
490 Performs case folding of the input string according to the collation.
491 Case folding is similar to case conversion, but the purpose of case
492 folding is to facilitate case-insensitive matching of strings,
493 whereas the purpose of case conversion is to convert to a particular
494 cased form. This function can only be used when the server encoding
495 is <code class="literal">UTF8</code>.
498 Ordinarily, case folding simply converts to lowercase, but there may
499 be exceptions depending on the collation. For instance, some
500 characters have more than two lowercase variants, or fold to uppercase.
503 Case folding may change the length of the string. For instance, in
504 the <code class="literal">PG_UNICODE_FAST</code> collation, <code class="literal">ß</code>
505 (U+00DF) folds to <code class="literal">ss</code>.
508 <code class="function">casefold</code> can be used for Unicode Default Caseless
509 Matching. It does not always preserve the normalized form of the
510 input string (see <a class="xref" href="functions-string.html#FUNCTION-NORMALIZE">normalize</a>).
513 The <code class="literal">libc</code> provider doesn't support case folding, so
514 <code class="function">casefold</code> is identical to <a class="xref" href="functions-string.html#FUNCTION-LOWER">lower</a>.
515 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
516 <a id="id-1.5.8.10.7.2.2.9.1.1.1" class="indexterm"></a>
517 <code class="function">left</code> ( <em class="parameter"><code>string</code></em> <code class="type">text</code>,
518 <em class="parameter"><code>n</code></em> <code class="type">integer</code> )
519 → <code class="returnvalue">text</code>
522 Returns first <em class="parameter"><code>n</code></em> characters in the
523 string, or when <em class="parameter"><code>n</code></em> is negative, returns
524 all but last |<em class="parameter"><code>n</code></em>| characters.
527 <code class="literal">left('abcde', 2)</code>
528 → <code class="returnvalue">ab</code>
529 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
530 <a id="id-1.5.8.10.7.2.2.10.1.1.1" class="indexterm"></a>
531 <code class="function">length</code> ( <code class="type">text</code> )
532 → <code class="returnvalue">integer</code>
535 Returns the number of characters in the string.
538 <code class="literal">length('jose')</code>
539 → <code class="returnvalue">4</code>
540 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
541 <a id="id-1.5.8.10.7.2.2.11.1.1.1" class="indexterm"></a>
542 <code class="function">md5</code> ( <code class="type">text</code> )
543 → <code class="returnvalue">text</code>
546 Computes the MD5 <a class="link" href="functions-binarystring.html#FUNCTIONS-HASH-NOTE">hash</a> of
547 the argument, with the result written in hexadecimal.
550 <code class="literal">md5('abc')</code>
551 → <code class="returnvalue">900150983cd24fb0d6963f7d28e17f72</code>
552 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
553 <a id="id-1.5.8.10.7.2.2.12.1.1.1" class="indexterm"></a>
554 <code class="function">parse_ident</code> ( <em class="parameter"><code>qualified_identifier</code></em> <code class="type">text</code>
555 [<span class="optional">, <em class="parameter"><code>strict_mode</code></em> <code class="type">boolean</code> <code class="literal">DEFAULT</code> <code class="literal">true</code> </span>] )
556 → <code class="returnvalue">text[]</code>
559 Splits <em class="parameter"><code>qualified_identifier</code></em> into an array of
560 identifiers, removing any quoting of individual identifiers. By
561 default, extra characters after the last identifier are considered an
562 error; but if the second parameter is <code class="literal">false</code>, then such
563 extra characters are ignored. (This behavior is useful for parsing
564 names for objects like functions.) Note that this function does not
565 truncate over-length identifiers. If you want truncation you can cast
566 the result to <code class="type">name[]</code>.
569 <code class="literal">parse_ident('"SomeSchema".someTable')</code>
570 → <code class="returnvalue">{SomeSchema,sometable}</code>
571 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
572 <a id="id-1.5.8.10.7.2.2.13.1.1.1" class="indexterm"></a>
573 <code class="function">pg_client_encoding</code> ( )
574 → <code class="returnvalue">name</code>
577 Returns current client encoding name.
580 <code class="literal">pg_client_encoding()</code>
581 → <code class="returnvalue">UTF8</code>
582 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
583 <a id="id-1.5.8.10.7.2.2.14.1.1.1" class="indexterm"></a>
584 <code class="function">quote_ident</code> ( <code class="type">text</code> )
585 → <code class="returnvalue">text</code>
588 Returns the given string suitably quoted to be used as an identifier
589 in an <acronym class="acronym">SQL</acronym> statement string.
590 Quotes are added only if necessary (i.e., if the string contains
591 non-identifier characters or would be case-folded).
592 Embedded quotes are properly doubled.
593 See also <a class="xref" href="plpgsql-statements.html#PLPGSQL-QUOTE-LITERAL-EXAMPLE" title="Example 41.1. Quoting Values in Dynamic Queries">Example 41.1</a>.
596 <code class="literal">quote_ident('Foo bar')</code>
597 → <code class="returnvalue">"Foo bar"</code>
598 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
599 <a id="id-1.5.8.10.7.2.2.15.1.1.1" class="indexterm"></a>
600 <code class="function">quote_literal</code> ( <code class="type">text</code> )
601 → <code class="returnvalue">text</code>
604 Returns the given string suitably quoted to be used as a string literal
605 in an <acronym class="acronym">SQL</acronym> statement string.
606 Embedded single-quotes and backslashes are properly doubled.
607 Note that <code class="function">quote_literal</code> returns null on null
608 input; if the argument might be null,
609 <code class="function">quote_nullable</code> is often more suitable.
610 See also <a class="xref" href="plpgsql-statements.html#PLPGSQL-QUOTE-LITERAL-EXAMPLE" title="Example 41.1. Quoting Values in Dynamic Queries">Example 41.1</a>.
613 <code class="literal">quote_literal(E'O\'Reilly')</code>
614 → <code class="returnvalue">'O''Reilly'</code>
615 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
616 <code class="function">quote_literal</code> ( <code class="type">anyelement</code> )
617 → <code class="returnvalue">text</code>
620 Converts the given value to text and then quotes it as a literal.
621 Embedded single-quotes and backslashes are properly doubled.
624 <code class="literal">quote_literal(42.5)</code>
625 → <code class="returnvalue">'42.5'</code>
626 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
627 <a id="id-1.5.8.10.7.2.2.17.1.1.1" class="indexterm"></a>
628 <code class="function">quote_nullable</code> ( <code class="type">text</code> )
629 → <code class="returnvalue">text</code>
632 Returns the given string suitably quoted to be used as a string literal
633 in an <acronym class="acronym">SQL</acronym> statement string; or, if the argument
634 is null, returns <code class="literal">NULL</code>.
635 Embedded single-quotes and backslashes are properly doubled.
636 See also <a class="xref" href="plpgsql-statements.html#PLPGSQL-QUOTE-LITERAL-EXAMPLE" title="Example 41.1. Quoting Values in Dynamic Queries">Example 41.1</a>.
639 <code class="literal">quote_nullable(NULL)</code>
640 → <code class="returnvalue">NULL</code>
641 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
642 <code class="function">quote_nullable</code> ( <code class="type">anyelement</code> )
643 → <code class="returnvalue">text</code>
646 Converts the given value to text and then quotes it as a literal;
647 or, if the argument is null, returns <code class="literal">NULL</code>.
648 Embedded single-quotes and backslashes are properly doubled.
651 <code class="literal">quote_nullable(42.5)</code>
652 → <code class="returnvalue">'42.5'</code>
653 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
654 <a id="id-1.5.8.10.7.2.2.19.1.1.1" class="indexterm"></a>
655 <code class="function">regexp_count</code> ( <em class="parameter"><code>string</code></em> <code class="type">text</code>, <em class="parameter"><code>pattern</code></em> <code class="type">text</code>
656 [<span class="optional">, <em class="parameter"><code>start</code></em> <code class="type">integer</code>
657 [<span class="optional">, <em class="parameter"><code>flags</code></em> <code class="type">text</code> </span>] </span>] )
658 → <code class="returnvalue">integer</code>
661 Returns the number of times the POSIX regular
662 expression <em class="parameter"><code>pattern</code></em> matches in
663 the <em class="parameter"><code>string</code></em>; see
664 <a class="xref" href="functions-matching.html#FUNCTIONS-POSIX-REGEXP" title="9.7.3. POSIX Regular Expressions">Section 9.7.3</a>.
667 <code class="literal">regexp_count('123456789012', '\d\d\d', 2)</code>
668 → <code class="returnvalue">3</code>
669 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
670 <a id="id-1.5.8.10.7.2.2.20.1.1.1" class="indexterm"></a>
671 <code class="function">regexp_instr</code> ( <em class="parameter"><code>string</code></em> <code class="type">text</code>, <em class="parameter"><code>pattern</code></em> <code class="type">text</code>
672 [<span class="optional">, <em class="parameter"><code>start</code></em> <code class="type">integer</code>
673 [<span class="optional">, <em class="parameter"><code>N</code></em> <code class="type">integer</code>
674 [<span class="optional">, <em class="parameter"><code>endoption</code></em> <code class="type">integer</code>
675 [<span class="optional">, <em class="parameter"><code>flags</code></em> <code class="type">text</code>
676 [<span class="optional">, <em class="parameter"><code>subexpr</code></em> <code class="type">integer</code> </span>] </span>] </span>] </span>] </span>] )
677 → <code class="returnvalue">integer</code>
680 Returns the position within <em class="parameter"><code>string</code></em> where
681 the <em class="parameter"><code>N</code></em>'th match of the POSIX regular
682 expression <em class="parameter"><code>pattern</code></em> occurs, or zero if there is
683 no such match; see <a class="xref" href="functions-matching.html#FUNCTIONS-POSIX-REGEXP" title="9.7.3. POSIX Regular Expressions">Section 9.7.3</a>.
686 <code class="literal">regexp_instr('ABCDEF', 'c(.)(..)', 1, 1, 0, 'i')</code>
687 → <code class="returnvalue">3</code>
690 <code class="literal">regexp_instr('ABCDEF', 'c(.)(..)', 1, 1, 0, 'i', 2)</code>
691 → <code class="returnvalue">5</code>
692 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
693 <a id="id-1.5.8.10.7.2.2.21.1.1.1" class="indexterm"></a>
694 <code class="function">regexp_like</code> ( <em class="parameter"><code>string</code></em> <code class="type">text</code>, <em class="parameter"><code>pattern</code></em> <code class="type">text</code>
695 [<span class="optional">, <em class="parameter"><code>flags</code></em> <code class="type">text</code> </span>] )
696 → <code class="returnvalue">boolean</code>
699 Checks whether a match of the POSIX regular
700 expression <em class="parameter"><code>pattern</code></em> occurs
701 within <em class="parameter"><code>string</code></em>; see
702 <a class="xref" href="functions-matching.html#FUNCTIONS-POSIX-REGEXP" title="9.7.3. POSIX Regular Expressions">Section 9.7.3</a>.
705 <code class="literal">regexp_like('Hello World', 'world$', 'i')</code>
706 → <code class="returnvalue">t</code>
707 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
708 <a id="id-1.5.8.10.7.2.2.22.1.1.1" class="indexterm"></a>
709 <code class="function">regexp_match</code> ( <em class="parameter"><code>string</code></em> <code class="type">text</code>, <em class="parameter"><code>pattern</code></em> <code class="type">text</code> [<span class="optional">, <em class="parameter"><code>flags</code></em> <code class="type">text</code> </span>] )
710 → <code class="returnvalue">text[]</code>
713 Returns substrings within the first match of the POSIX regular
714 expression <em class="parameter"><code>pattern</code></em> to
715 the <em class="parameter"><code>string</code></em>; see
716 <a class="xref" href="functions-matching.html#FUNCTIONS-POSIX-REGEXP" title="9.7.3. POSIX Regular Expressions">Section 9.7.3</a>.
719 <code class="literal">regexp_match('foobarbequebaz', '(bar)(beque)')</code>
720 → <code class="returnvalue">{bar,beque}</code>
721 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
722 <a id="id-1.5.8.10.7.2.2.23.1.1.1" class="indexterm"></a>
723 <code class="function">regexp_matches</code> ( <em class="parameter"><code>string</code></em> <code class="type">text</code>, <em class="parameter"><code>pattern</code></em> <code class="type">text</code> [<span class="optional">, <em class="parameter"><code>flags</code></em> <code class="type">text</code> </span>] )
724 → <code class="returnvalue">setof text[]</code>
727 Returns substrings within the first match of the POSIX regular
728 expression <em class="parameter"><code>pattern</code></em> to
729 the <em class="parameter"><code>string</code></em>, or substrings within all
730 such matches if the <code class="literal">g</code> flag is used;
731 see <a class="xref" href="functions-matching.html#FUNCTIONS-POSIX-REGEXP" title="9.7.3. POSIX Regular Expressions">Section 9.7.3</a>.
734 <code class="literal">regexp_matches('foobarbequebaz', 'ba.', 'g')</code>
735 → <code class="returnvalue"></code>
736 </p><pre class="programlisting">
740 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
741 <a id="id-1.5.8.10.7.2.2.24.1.1.1" class="indexterm"></a>
742 <code class="function">regexp_replace</code> ( <em class="parameter"><code>string</code></em> <code class="type">text</code>, <em class="parameter"><code>pattern</code></em> <code class="type">text</code>, <em class="parameter"><code>replacement</code></em> <code class="type">text</code>
743 [<span class="optional">, <em class="parameter"><code>flags</code></em> <code class="type">text</code> </span>] )
744 → <code class="returnvalue">text</code>
747 Replaces the substring that is the first match to the POSIX
748 regular expression <em class="parameter"><code>pattern</code></em>, or all such
749 matches if the <code class="literal">g</code> flag is used; see
750 <a class="xref" href="functions-matching.html#FUNCTIONS-POSIX-REGEXP" title="9.7.3. POSIX Regular Expressions">Section 9.7.3</a>.
753 <code class="literal">regexp_replace('Thomas', '.[mN]a.', 'M')</code>
754 → <code class="returnvalue">ThM</code>
755 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
756 <code class="function">regexp_replace</code> ( <em class="parameter"><code>string</code></em> <code class="type">text</code>, <em class="parameter"><code>pattern</code></em> <code class="type">text</code>, <em class="parameter"><code>replacement</code></em> <code class="type">text</code>,
757 <em class="parameter"><code>start</code></em> <code class="type">integer</code>
758 [<span class="optional">, <em class="parameter"><code>N</code></em> <code class="type">integer</code>
759 [<span class="optional">, <em class="parameter"><code>flags</code></em> <code class="type">text</code> </span>] </span>] )
760 → <code class="returnvalue">text</code>
763 Replaces the substring that is the <em class="parameter"><code>N</code></em>'th
764 match to the POSIX regular expression <em class="parameter"><code>pattern</code></em>,
765 or all such matches if <em class="parameter"><code>N</code></em> is zero, with the
766 search beginning at the <em class="parameter"><code>start</code></em>'th character
767 of <em class="parameter"><code>string</code></em>. If <em class="parameter"><code>N</code></em> is
768 omitted, it defaults to 1. See
769 <a class="xref" href="functions-matching.html#FUNCTIONS-POSIX-REGEXP" title="9.7.3. POSIX Regular Expressions">Section 9.7.3</a>.
772 <code class="literal">regexp_replace('Thomas', '.', 'X', 3, 2)</code>
773 → <code class="returnvalue">ThoXas</code>
776 <code class="literal">regexp_replace(string=>'hello world', pattern=>'l', replacement=>'XX', start=>1, "N"=>2)</code>
777 → <code class="returnvalue">helXXo world</code>
778 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
779 <a id="id-1.5.8.10.7.2.2.26.1.1.1" class="indexterm"></a>
780 <code class="function">regexp_split_to_array</code> ( <em class="parameter"><code>string</code></em> <code class="type">text</code>, <em class="parameter"><code>pattern</code></em> <code class="type">text</code> [<span class="optional">, <em class="parameter"><code>flags</code></em> <code class="type">text</code> </span>] )
781 → <code class="returnvalue">text[]</code>
784 Splits <em class="parameter"><code>string</code></em> using a POSIX regular
785 expression as the delimiter, producing an array of results; see
786 <a class="xref" href="functions-matching.html#FUNCTIONS-POSIX-REGEXP" title="9.7.3. POSIX Regular Expressions">Section 9.7.3</a>.
789 <code class="literal">regexp_split_to_array('hello world', '\s+')</code>
790 → <code class="returnvalue">{hello,world}</code>
791 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
792 <a id="id-1.5.8.10.7.2.2.27.1.1.1" class="indexterm"></a>
793 <code class="function">regexp_split_to_table</code> ( <em class="parameter"><code>string</code></em> <code class="type">text</code>, <em class="parameter"><code>pattern</code></em> <code class="type">text</code> [<span class="optional">, <em class="parameter"><code>flags</code></em> <code class="type">text</code> </span>] )
794 → <code class="returnvalue">setof text</code>
797 Splits <em class="parameter"><code>string</code></em> using a POSIX regular
798 expression as the delimiter, producing a set of results; see
799 <a class="xref" href="functions-matching.html#FUNCTIONS-POSIX-REGEXP" title="9.7.3. POSIX Regular Expressions">Section 9.7.3</a>.
802 <code class="literal">regexp_split_to_table('hello world', '\s+')</code>
803 → <code class="returnvalue"></code>
804 </p><pre class="programlisting">
808 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
809 <a id="id-1.5.8.10.7.2.2.28.1.1.1" class="indexterm"></a>
810 <code class="function">regexp_substr</code> ( <em class="parameter"><code>string</code></em> <code class="type">text</code>, <em class="parameter"><code>pattern</code></em> <code class="type">text</code>
811 [<span class="optional">, <em class="parameter"><code>start</code></em> <code class="type">integer</code>
812 [<span class="optional">, <em class="parameter"><code>N</code></em> <code class="type">integer</code>
813 [<span class="optional">, <em class="parameter"><code>flags</code></em> <code class="type">text</code>
814 [<span class="optional">, <em class="parameter"><code>subexpr</code></em> <code class="type">integer</code> </span>] </span>] </span>] </span>] )
815 → <code class="returnvalue">text</code>
818 Returns the substring within <em class="parameter"><code>string</code></em> that
819 matches the <em class="parameter"><code>N</code></em>'th occurrence of the POSIX
820 regular expression <em class="parameter"><code>pattern</code></em>,
821 or <code class="literal">NULL</code> if there is no such match; see
822 <a class="xref" href="functions-matching.html#FUNCTIONS-POSIX-REGEXP" title="9.7.3. POSIX Regular Expressions">Section 9.7.3</a>.
825 <code class="literal">regexp_substr('ABCDEF', 'c(.)(..)', 1, 1, 'i')</code>
826 → <code class="returnvalue">CDEF</code>
829 <code class="literal">regexp_substr('ABCDEF', 'c(.)(..)', 1, 1, 'i', 2)</code>
830 → <code class="returnvalue">EF</code>
831 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
832 <a id="id-1.5.8.10.7.2.2.29.1.1.1" class="indexterm"></a>
833 <code class="function">repeat</code> ( <em class="parameter"><code>string</code></em> <code class="type">text</code>, <em class="parameter"><code>number</code></em> <code class="type">integer</code> )
834 → <code class="returnvalue">text</code>
837 Repeats <em class="parameter"><code>string</code></em> the specified
838 <em class="parameter"><code>number</code></em> of times.
841 <code class="literal">repeat('Pg', 4)</code>
842 → <code class="returnvalue">PgPgPgPg</code>
843 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
844 <a id="id-1.5.8.10.7.2.2.30.1.1.1" class="indexterm"></a>
845 <code class="function">replace</code> ( <em class="parameter"><code>string</code></em> <code class="type">text</code>,
846 <em class="parameter"><code>from</code></em> <code class="type">text</code>,
847 <em class="parameter"><code>to</code></em> <code class="type">text</code> )
848 → <code class="returnvalue">text</code>
851 Replaces all occurrences in <em class="parameter"><code>string</code></em> of
852 substring <em class="parameter"><code>from</code></em> with
853 substring <em class="parameter"><code>to</code></em>.
856 <code class="literal">replace('abcdefabcdef', 'cd', 'XX')</code>
857 → <code class="returnvalue">abXXefabXXef</code>
858 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
859 <a id="id-1.5.8.10.7.2.2.31.1.1.1" class="indexterm"></a>
860 <code class="function">reverse</code> ( <code class="type">text</code> )
861 → <code class="returnvalue">text</code>
864 Reverses the order of the characters in the string.
867 <code class="literal">reverse('abcde')</code>
868 → <code class="returnvalue">edcba</code>
869 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
870 <a id="id-1.5.8.10.7.2.2.32.1.1.1" class="indexterm"></a>
871 <code class="function">right</code> ( <em class="parameter"><code>string</code></em> <code class="type">text</code>,
872 <em class="parameter"><code>n</code></em> <code class="type">integer</code> )
873 → <code class="returnvalue">text</code>
876 Returns last <em class="parameter"><code>n</code></em> characters in the string,
877 or when <em class="parameter"><code>n</code></em> is negative, returns all but
878 first |<em class="parameter"><code>n</code></em>| characters.
881 <code class="literal">right('abcde', 2)</code>
882 → <code class="returnvalue">de</code>
883 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
884 <a id="id-1.5.8.10.7.2.2.33.1.1.1" class="indexterm"></a>
885 <code class="function">split_part</code> ( <em class="parameter"><code>string</code></em> <code class="type">text</code>,
886 <em class="parameter"><code>delimiter</code></em> <code class="type">text</code>,
887 <em class="parameter"><code>n</code></em> <code class="type">integer</code> )
888 → <code class="returnvalue">text</code>
891 Splits <em class="parameter"><code>string</code></em> at occurrences
892 of <em class="parameter"><code>delimiter</code></em> and returns
893 the <em class="parameter"><code>n</code></em>'th field (counting from one),
894 or when <em class="parameter"><code>n</code></em> is negative, returns
895 the |<em class="parameter"><code>n</code></em>|'th-from-last field.
898 <code class="literal">split_part('abc~@~def~@~ghi', '~@~', 2)</code>
899 → <code class="returnvalue">def</code>
902 <code class="literal">split_part('abc,def,ghi,jkl', ',', -2)</code>
903 → <code class="returnvalue">ghi</code>
904 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
905 <a id="id-1.5.8.10.7.2.2.34.1.1.1" class="indexterm"></a>
906 <code class="function">starts_with</code> ( <em class="parameter"><code>string</code></em> <code class="type">text</code>, <em class="parameter"><code>prefix</code></em> <code class="type">text</code> )
907 → <code class="returnvalue">boolean</code>
910 Returns true if <em class="parameter"><code>string</code></em> starts
911 with <em class="parameter"><code>prefix</code></em>.
914 <code class="literal">starts_with('alphabet', 'alph')</code>
915 → <code class="returnvalue">t</code>
916 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
917 <a id="FUNCTION-STRING-TO-ARRAY" class="indexterm"></a>
918 <code class="function">string_to_array</code> ( <em class="parameter"><code>string</code></em> <code class="type">text</code>, <em class="parameter"><code>delimiter</code></em> <code class="type">text</code> [<span class="optional">, <em class="parameter"><code>null_string</code></em> <code class="type">text</code> </span>] )
919 → <code class="returnvalue">text[]</code>
922 Splits the <em class="parameter"><code>string</code></em> at occurrences
923 of <em class="parameter"><code>delimiter</code></em> and forms the resulting fields
924 into a <code class="type">text</code> array.
925 If <em class="parameter"><code>delimiter</code></em> is <code class="literal">NULL</code>,
926 each character in the <em class="parameter"><code>string</code></em> will become a
927 separate element in the array.
928 If <em class="parameter"><code>delimiter</code></em> is an empty string, then
929 the <em class="parameter"><code>string</code></em> is treated as a single field.
930 If <em class="parameter"><code>null_string</code></em> is supplied and is
931 not <code class="literal">NULL</code>, fields matching that string are
932 replaced by <code class="literal">NULL</code>.
933 See also <a class="link" href="functions-array.html#FUNCTION-ARRAY-TO-STRING"><code class="function">array_to_string</code></a>.
936 <code class="literal">string_to_array('xx~~yy~~zz', '~~', 'yy')</code>
937 → <code class="returnvalue">{xx,NULL,zz}</code>
938 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
939 <a id="id-1.5.8.10.7.2.2.36.1.1.1" class="indexterm"></a>
940 <code class="function">string_to_table</code> ( <em class="parameter"><code>string</code></em> <code class="type">text</code>, <em class="parameter"><code>delimiter</code></em> <code class="type">text</code> [<span class="optional">, <em class="parameter"><code>null_string</code></em> <code class="type">text</code> </span>] )
941 → <code class="returnvalue">setof text</code>
944 Splits the <em class="parameter"><code>string</code></em> at occurrences
945 of <em class="parameter"><code>delimiter</code></em> and returns the resulting fields
946 as a set of <code class="type">text</code> rows.
947 If <em class="parameter"><code>delimiter</code></em> is <code class="literal">NULL</code>,
948 each character in the <em class="parameter"><code>string</code></em> will become a
949 separate row of the result.
950 If <em class="parameter"><code>delimiter</code></em> is an empty string, then
951 the <em class="parameter"><code>string</code></em> is treated as a single field.
952 If <em class="parameter"><code>null_string</code></em> is supplied and is
953 not <code class="literal">NULL</code>, fields matching that string are
954 replaced by <code class="literal">NULL</code>.
957 <code class="literal">string_to_table('xx~^~yy~^~zz', '~^~', 'yy')</code>
958 → <code class="returnvalue"></code>
959 </p><pre class="programlisting">
964 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
965 <a id="id-1.5.8.10.7.2.2.37.1.1.1" class="indexterm"></a>
966 <code class="function">strpos</code> ( <em class="parameter"><code>string</code></em> <code class="type">text</code>, <em class="parameter"><code>substring</code></em> <code class="type">text</code> )
967 → <code class="returnvalue">integer</code>
970 Returns first starting index of the specified <em class="parameter"><code>substring</code></em>
971 within <em class="parameter"><code>string</code></em>, or zero if it's not present.
972 (Same as <code class="literal">position(<em class="parameter"><code>substring</code></em> in
973 <em class="parameter"><code>string</code></em>)</code>, but note the reversed
977 <code class="literal">strpos('high', 'ig')</code>
978 → <code class="returnvalue">2</code>
979 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
980 <a id="id-1.5.8.10.7.2.2.38.1.1.1" class="indexterm"></a>
981 <code class="function">substr</code> ( <em class="parameter"><code>string</code></em> <code class="type">text</code>, <em class="parameter"><code>start</code></em> <code class="type">integer</code> [<span class="optional">, <em class="parameter"><code>count</code></em> <code class="type">integer</code> </span>] )
982 → <code class="returnvalue">text</code>
985 Extracts the substring of <em class="parameter"><code>string</code></em> starting at
986 the <em class="parameter"><code>start</code></em>'th character,
987 and extending for <em class="parameter"><code>count</code></em> characters if that is
989 as <code class="literal">substring(<em class="parameter"><code>string</code></em>
990 from <em class="parameter"><code>start</code></em>
991 for <em class="parameter"><code>count</code></em>)</code>.)
994 <code class="literal">substr('alphabet', 3)</code>
995 → <code class="returnvalue">phabet</code>
998 <code class="literal">substr('alphabet', 3, 2)</code>
999 → <code class="returnvalue">ph</code>
1000 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
1001 <a id="id-1.5.8.10.7.2.2.39.1.1.1" class="indexterm"></a>
1002 <code class="function">to_ascii</code> ( <em class="parameter"><code>string</code></em> <code class="type">text</code> )
1003 → <code class="returnvalue">text</code>
1005 <p class="func_signature">
1006 <code class="function">to_ascii</code> ( <em class="parameter"><code>string</code></em> <code class="type">text</code>,
1007 <em class="parameter"><code>encoding</code></em> <code class="type">name</code> )
1008 → <code class="returnvalue">text</code>
1010 <p class="func_signature">
1011 <code class="function">to_ascii</code> ( <em class="parameter"><code>string</code></em> <code class="type">text</code>,
1012 <em class="parameter"><code>encoding</code></em> <code class="type">integer</code> )
1013 → <code class="returnvalue">text</code>
1016 Converts <em class="parameter"><code>string</code></em> to <acronym class="acronym">ASCII</acronym>
1017 from another encoding, which may be identified by name or number.
1018 If <em class="parameter"><code>encoding</code></em> is omitted the database encoding
1019 is assumed (which in practice is the only useful case).
1020 The conversion consists primarily of dropping accents.
1021 Conversion is only supported
1022 from <code class="literal">LATIN1</code>, <code class="literal">LATIN2</code>,
1023 <code class="literal">LATIN9</code>, and <code class="literal">WIN1250</code> encodings.
1024 (See the <a class="xref" href="unaccent.html" title="F.48. unaccent — a text search dictionary which removes diacritics">unaccent</a> module for another, more flexible
1028 <code class="literal">to_ascii('Karél')</code>
1029 → <code class="returnvalue">Karel</code>
1030 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
1031 <a id="id-1.5.8.10.7.2.2.40.1.1.1" class="indexterm"></a>
1032 <code class="function">to_bin</code> ( <code class="type">integer</code> )
1033 → <code class="returnvalue">text</code>
1035 <p class="func_signature">
1036 <code class="function">to_bin</code> ( <code class="type">bigint</code> )
1037 → <code class="returnvalue">text</code>
1040 Converts the number to its equivalent two's complement binary
1044 <code class="literal">to_bin(2147483647)</code>
1045 → <code class="returnvalue">1111111111111111111111111111111</code>
1048 <code class="literal">to_bin(-1234)</code>
1049 → <code class="returnvalue">11111111111111111111101100101110</code>
1050 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
1051 <a id="id-1.5.8.10.7.2.2.41.1.1.1" class="indexterm"></a>
1052 <code class="function">to_hex</code> ( <code class="type">integer</code> )
1053 → <code class="returnvalue">text</code>
1055 <p class="func_signature">
1056 <code class="function">to_hex</code> ( <code class="type">bigint</code> )
1057 → <code class="returnvalue">text</code>
1060 Converts the number to its equivalent two's complement hexadecimal
1064 <code class="literal">to_hex(2147483647)</code>
1065 → <code class="returnvalue">7fffffff</code>
1068 <code class="literal">to_hex(-1234)</code>
1069 → <code class="returnvalue">fffffb2e</code>
1070 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
1071 <a id="id-1.5.8.10.7.2.2.42.1.1.1" class="indexterm"></a>
1072 <code class="function">to_oct</code> ( <code class="type">integer</code> )
1073 → <code class="returnvalue">text</code>
1075 <p class="func_signature">
1076 <code class="function">to_oct</code> ( <code class="type">bigint</code> )
1077 → <code class="returnvalue">text</code>
1080 Converts the number to its equivalent two's complement octal
1084 <code class="literal">to_oct(2147483647)</code>
1085 → <code class="returnvalue">17777777777</code>
1088 <code class="literal">to_oct(-1234)</code>
1089 → <code class="returnvalue">37777775456</code>
1090 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
1091 <a id="id-1.5.8.10.7.2.2.43.1.1.1" class="indexterm"></a>
1092 <code class="function">translate</code> ( <em class="parameter"><code>string</code></em> <code class="type">text</code>,
1093 <em class="parameter"><code>from</code></em> <code class="type">text</code>,
1094 <em class="parameter"><code>to</code></em> <code class="type">text</code> )
1095 → <code class="returnvalue">text</code>
1098 Replaces each character in <em class="parameter"><code>string</code></em> that
1099 matches a character in the <em class="parameter"><code>from</code></em> set with the
1100 corresponding character in the <em class="parameter"><code>to</code></em>
1101 set. If <em class="parameter"><code>from</code></em> is longer than
1102 <em class="parameter"><code>to</code></em>, occurrences of the extra characters in
1103 <em class="parameter"><code>from</code></em> are deleted.
1106 <code class="literal">translate('12345', '143', 'ax')</code>
1107 → <code class="returnvalue">a2x5</code>
1108 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">
1109 <a id="id-1.5.8.10.7.2.2.44.1.1.1" class="indexterm"></a>
1110 <code class="function">unistr</code> ( <code class="type">text</code> )
1111 → <code class="returnvalue">text</code>
1114 Evaluate escaped Unicode characters in the argument. Unicode characters
1116 <code class="literal">\<em class="replaceable"><code>XXXX</code></em></code> (4 hexadecimal
1117 digits), <code class="literal">\+<em class="replaceable"><code>XXXXXX</code></em></code> (6
1118 hexadecimal digits),
1119 <code class="literal">\u<em class="replaceable"><code>XXXX</code></em></code> (4 hexadecimal
1120 digits), or <code class="literal">\U<em class="replaceable"><code>XXXXXXXX</code></em></code>
1121 (8 hexadecimal digits). To specify a backslash, write two
1122 backslashes. All other characters are taken literally.
1126 If the server encoding is not UTF-8, the Unicode code point identified
1127 by one of these escape sequences is converted to the actual server
1128 encoding; an error is reported if that's not possible.
1132 This function provides a (non-standard) alternative to string
1133 constants with Unicode escapes (see <a class="xref" href="sql-syntax-lexical.html#SQL-SYNTAX-STRINGS-UESCAPE" title="4.1.2.3. String Constants with Unicode Escapes">Section 4.1.2.3</a>).
1137 <code class="literal">unistr('d\0061t\+000061')</code>
1138 → <code class="returnvalue">data</code>
1141 <code class="literal">unistr('d\u0061t\U00000061')</code>
1142 → <code class="returnvalue">data</code>
1143 </p></td></tr></tbody></table></div></div><br class="table-break" /><p>
1144 The <code class="function">concat</code>, <code class="function">concat_ws</code> and
1145 <code class="function">format</code> functions are variadic, so it is possible to
1146 pass the values to be concatenated or formatted as an array marked with
1147 the <code class="literal">VARIADIC</code> keyword (see <a class="xref" href="xfunc-sql.html#XFUNC-SQL-VARIADIC-FUNCTIONS" title="36.5.6. SQL Functions with Variable Numbers of Arguments">Section 36.5.6</a>). The array's elements are
1148 treated as if they were separate ordinary arguments to the function.
1149 If the variadic array argument is NULL, <code class="function">concat</code>
1150 and <code class="function">concat_ws</code> return NULL, but
1151 <code class="function">format</code> treats a NULL as a zero-element array.
1153 See also the aggregate function <code class="function">string_agg</code> in
1154 <a class="xref" href="functions-aggregate.html" title="9.21. Aggregate Functions">Section 9.21</a>, and the functions for
1155 converting between strings and the <code class="type">bytea</code> type in
1156 <a class="xref" href="functions-binarystring.html#FUNCTIONS-BINARYSTRING-CONVERSIONS" title="Table 9.13. Text/Binary String Conversion Functions">Table 9.13</a>.
1157 </p><div class="sect2" id="FUNCTIONS-STRING-FORMAT"><div class="titlepage"><div><div><h3 class="title">9.4.1. <code class="function">format</code> <a href="#FUNCTIONS-STRING-FORMAT" class="id_link">#</a></h3></div></div></div><a id="id-1.5.8.10.10.2" class="indexterm"></a><p>
1158 The function <code class="function">format</code> produces output formatted according to
1159 a format string, in a style similar to the C function
1160 <code class="function">sprintf</code>.
1162 </p><pre class="synopsis">
1163 <code class="function">format</code>(<em class="parameter"><code>formatstr</code></em> <code class="type">text</code> [<span class="optional">, <em class="parameter"><code>formatarg</code></em> <code class="type">"any"</code> [<span class="optional">, ...</span>] </span>])
1165 <em class="parameter"><code>formatstr</code></em> is a format string that specifies how the
1166 result should be formatted. Text in the format string is copied
1167 directly to the result, except where <em class="firstterm">format specifiers</em> are
1168 used. Format specifiers act as placeholders in the string, defining how
1169 subsequent function arguments should be formatted and inserted into the
1170 result. Each <em class="parameter"><code>formatarg</code></em> argument is converted to text
1171 according to the usual output rules for its data type, and then formatted
1172 and inserted into the result string according to the format specifier(s).
1174 Format specifiers are introduced by a <code class="literal">%</code> character and have
1176 </p><pre class="synopsis">
1177 %[<em class="parameter"><code>position</code></em>][<em class="parameter"><code>flags</code></em>][<em class="parameter"><code>width</code></em>]<em class="parameter"><code>type</code></em>
1179 where the component fields are:
1181 </p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>position</code></em> (optional)</span></dt><dd><p>
1182 A string of the form <code class="literal"><em class="parameter"><code>n</code></em>$</code> where
1183 <em class="parameter"><code>n</code></em> is the index of the argument to print.
1184 Index 1 means the first argument after
1185 <em class="parameter"><code>formatstr</code></em>. If the <em class="parameter"><code>position</code></em> is
1186 omitted, the default is to use the next argument in sequence.
1187 </p></dd><dt><span class="term"><em class="parameter"><code>flags</code></em> (optional)</span></dt><dd><p>
1188 Additional options controlling how the format specifier's output is
1189 formatted. Currently the only supported flag is a minus sign
1190 (<code class="literal">-</code>) which will cause the format specifier's output to be
1191 left-justified. This has no effect unless the <em class="parameter"><code>width</code></em>
1192 field is also specified.
1193 </p></dd><dt><span class="term"><em class="parameter"><code>width</code></em> (optional)</span></dt><dd><p>
1194 Specifies the <span class="emphasis"><em>minimum</em></span> number of characters to use to
1195 display the format specifier's output. The output is padded on the
1196 left or right (depending on the <code class="literal">-</code> flag) with spaces as
1197 needed to fill the width. A too-small width does not cause
1198 truncation of the output, but is simply ignored. The width may be
1199 specified using any of the following: a positive integer; an
1200 asterisk (<code class="literal">*</code>) to use the next function argument as the
1201 width; or a string of the form <code class="literal">*<em class="parameter"><code>n</code></em>$</code> to
1202 use the <em class="parameter"><code>n</code></em>th function argument as the width.
1204 If the width comes from a function argument, that argument is
1205 consumed before the argument that is used for the format specifier's
1206 value. If the width argument is negative, the result is left
1207 aligned (as if the <code class="literal">-</code> flag had been specified) within a
1208 field of length <code class="function">abs</code>(<em class="parameter"><code>width</code></em>).
1209 </p></dd><dt><span class="term"><em class="parameter"><code>type</code></em> (required)</span></dt><dd><p>
1210 The type of format conversion to use to produce the format
1211 specifier's output. The following types are supported:
1212 </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
1213 <code class="literal">s</code> formats the argument value as a simple
1214 string. A null value is treated as an empty string.
1215 </p></li><li class="listitem"><p>
1216 <code class="literal">I</code> treats the argument value as an SQL
1217 identifier, double-quoting it if necessary.
1218 It is an error for the value to be null (equivalent to
1219 <code class="function">quote_ident</code>).
1220 </p></li><li class="listitem"><p>
1221 <code class="literal">L</code> quotes the argument value as an SQL literal.
1222 A null value is displayed as the string <code class="literal">NULL</code>, without
1223 quotes (equivalent to <code class="function">quote_nullable</code>).
1224 </p></li></ul></div><p>
1225 </p></dd></dl></div><p>
1227 In addition to the format specifiers described above, the special sequence
1228 <code class="literal">%%</code> may be used to output a literal <code class="literal">%</code> character.
1230 Here are some examples of the basic format conversions:
1232 </p><pre class="screen">
1233 SELECT format('Hello %s', 'World');
1234 <em class="lineannotation"><span class="lineannotation">Result: </span></em><code class="computeroutput">Hello World</code>
1236 SELECT format('Testing %s, %s, %s, %%', 'one', 'two', 'three');
1237 <em class="lineannotation"><span class="lineannotation">Result: </span></em><code class="computeroutput">Testing one, two, three, %</code>
1239 SELECT format('INSERT INTO %I VALUES(%L)', 'Foo bar', E'O\'Reilly');
1240 <em class="lineannotation"><span class="lineannotation">Result: </span></em><code class="computeroutput">INSERT INTO "Foo bar" VALUES('O''Reilly')</code>
1242 SELECT format('INSERT INTO %I VALUES(%L)', 'locations', 'C:\Program Files');
1243 <em class="lineannotation"><span class="lineannotation">Result: </span></em><code class="computeroutput">INSERT INTO locations VALUES('C:\Program Files')</code>
1246 Here are examples using <em class="parameter"><code>width</code></em> fields
1247 and the <code class="literal">-</code> flag:
1249 </p><pre class="screen">
1250 SELECT format('|%10s|', 'foo');
1251 <em class="lineannotation"><span class="lineannotation">Result: </span></em><code class="computeroutput">| foo|</code>
1253 SELECT format('|%-10s|', 'foo');
1254 <em class="lineannotation"><span class="lineannotation">Result: </span></em><code class="computeroutput">|foo |</code>
1256 SELECT format('|%*s|', 10, 'foo');
1257 <em class="lineannotation"><span class="lineannotation">Result: </span></em><code class="computeroutput">| foo|</code>
1259 SELECT format('|%*s|', -10, 'foo');
1260 <em class="lineannotation"><span class="lineannotation">Result: </span></em><code class="computeroutput">|foo |</code>
1262 SELECT format('|%-*s|', 10, 'foo');
1263 <em class="lineannotation"><span class="lineannotation">Result: </span></em><code class="computeroutput">|foo |</code>
1265 SELECT format('|%-*s|', -10, 'foo');
1266 <em class="lineannotation"><span class="lineannotation">Result: </span></em><code class="computeroutput">|foo |</code>
1269 These examples show use of <em class="parameter"><code>position</code></em> fields:
1271 </p><pre class="screen">
1272 SELECT format('Testing %3$s, %2$s, %1$s', 'one', 'two', 'three');
1273 <em class="lineannotation"><span class="lineannotation">Result: </span></em><code class="computeroutput">Testing three, two, one</code>
1275 SELECT format('|%*2$s|', 'foo', 10, 'bar');
1276 <em class="lineannotation"><span class="lineannotation">Result: </span></em><code class="computeroutput">| bar|</code>
1278 SELECT format('|%1$*2$s|', 'foo', 10, 'bar');
1279 <em class="lineannotation"><span class="lineannotation">Result: </span></em><code class="computeroutput">| foo|</code>
1282 Unlike the standard C function <code class="function">sprintf</code>,
1283 <span class="productname">PostgreSQL</span>'s <code class="function">format</code> function allows format
1284 specifiers with and without <em class="parameter"><code>position</code></em> fields to be mixed
1285 in the same format string. A format specifier without a
1286 <em class="parameter"><code>position</code></em> field always uses the next argument after the
1287 last argument consumed.
1288 In addition, the <code class="function">format</code> function does not require all
1289 function arguments to be used in the format string.
1292 </p><pre class="screen">
1293 SELECT format('Testing %3$s, %2$s, %s', 'one', 'two', 'three');
1294 <em class="lineannotation"><span class="lineannotation">Result: </span></em><code class="computeroutput">Testing three, two, three</code>
1297 The <code class="literal">%I</code> and <code class="literal">%L</code> format specifiers are particularly
1298 useful for safely constructing dynamic SQL statements. See
1299 <a class="xref" href="plpgsql-statements.html#PLPGSQL-QUOTE-LITERAL-EXAMPLE" title="Example 41.1. Quoting Values in Dynamic Queries">Example 41.1</a>.
1300 </p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="functions-math.html" title="9.3. Mathematical Functions and Operators">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="functions.html" title="Chapter 9. Functions and Operators">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="functions-binarystring.html" title="9.5. Binary String Functions and Operators">Next</a></td></tr><tr><td width="40%" align="left" valign="top">9.3. Mathematical Functions and Operators </td><td width="20%" align="center"><a accesskey="h" href="index.html" title="PostgreSQL 18.0 Documentation">Home</a></td><td width="40%" align="right" valign="top"> 9.5. Binary String Functions and Operators</td></tr></table></div></body></html>