~ubuntu-branches/ubuntu/oneiric/postgresql-9.1/oneiric-security

« back to all changes in this revision

Viewing changes to doc/src/sgml/html/functions-array.html

  • Committer: Bazaar Package Importer
  • Author(s): Martin Pitt
  • Date: 2011-05-11 10:41:53 UTC
  • Revision ID: james.westby@ubuntu.com-20110511104153-psbh2o58553fv1m0
Tags: upstream-9.1~beta1
ImportĀ upstreamĀ versionĀ 9.1~beta1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 
2
<HTML
 
3
><HEAD
 
4
><TITLE
 
5
>Array Functions and Operators</TITLE
 
6
><META
 
7
NAME="GENERATOR"
 
8
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 
9
REV="MADE"
 
10
HREF="mailto:pgsql-docs@postgresql.org"><LINK
 
11
REL="HOME"
 
12
TITLE="PostgreSQL 9.1beta1 Documentation"
 
13
HREF="index.html"><LINK
 
14
REL="UP"
 
15
TITLE="Functions and Operators"
 
16
HREF="functions.html"><LINK
 
17
REL="PREVIOUS"
 
18
TITLE="Conditional Expressions"
 
19
HREF="functions-conditional.html"><LINK
 
20
REL="NEXT"
 
21
TITLE="Aggregate Functions"
 
22
HREF="functions-aggregate.html"><LINK
 
23
REL="STYLESHEET"
 
24
TYPE="text/css"
 
25
HREF="stylesheet.css"><META
 
26
HTTP-EQUIV="Content-Type"
 
27
CONTENT="text/html; charset=ISO-8859-1"><META
 
28
NAME="creation"
 
29
CONTENT="2011-04-27T21:20:33"></HEAD
 
30
><BODY
 
31
CLASS="SECT1"
 
32
><DIV
 
33
CLASS="NAVHEADER"
 
34
><TABLE
 
35
SUMMARY="Header navigation table"
 
36
WIDTH="100%"
 
37
BORDER="0"
 
38
CELLPADDING="0"
 
39
CELLSPACING="0"
 
40
><TR
 
41
><TH
 
42
COLSPAN="5"
 
43
ALIGN="center"
 
44
VALIGN="bottom"
 
45
><A
 
46
HREF="index.html"
 
47
>PostgreSQL 9.1beta1 Documentation</A
 
48
></TH
 
49
></TR
 
50
><TR
 
51
><TD
 
52
WIDTH="10%"
 
53
ALIGN="left"
 
54
VALIGN="top"
 
55
><A
 
56
TITLE="Conditional Expressions"
 
57
HREF="functions-conditional.html"
 
58
ACCESSKEY="P"
 
59
>Prev</A
 
60
></TD
 
61
><TD
 
62
WIDTH="10%"
 
63
ALIGN="left"
 
64
VALIGN="top"
 
65
><A
 
66
TITLE="Functions and Operators"
 
67
HREF="functions.html"
 
68
>Fast Backward</A
 
69
></TD
 
70
><TD
 
71
WIDTH="60%"
 
72
ALIGN="center"
 
73
VALIGN="bottom"
 
74
>Chapter 9. Functions and Operators</TD
 
75
><TD
 
76
WIDTH="10%"
 
77
ALIGN="right"
 
78
VALIGN="top"
 
79
><A
 
80
TITLE="Functions and Operators"
 
81
HREF="functions.html"
 
82
>Fast Forward</A
 
83
></TD
 
84
><TD
 
85
WIDTH="10%"
 
86
ALIGN="right"
 
87
VALIGN="top"
 
88
><A
 
89
TITLE="Aggregate Functions"
 
90
HREF="functions-aggregate.html"
 
91
ACCESSKEY="N"
 
92
>Next</A
 
93
></TD
 
94
></TR
 
95
></TABLE
 
96
><HR
 
97
ALIGN="LEFT"
 
98
WIDTH="100%"></DIV
 
99
><DIV
 
100
CLASS="SECT1"
 
101
><H1
 
102
CLASS="SECT1"
 
103
><A
 
104
NAME="FUNCTIONS-ARRAY"
 
105
>9.17. Array Functions and Operators</A
 
106
></H1
 
107
><P
 
108
>   <A
 
109
HREF="functions-array.html#ARRAY-OPERATORS-TABLE"
 
110
>Table 9-40</A
 
111
> shows the operators
 
112
   available for array types.
 
113
  </P
 
114
><DIV
 
115
CLASS="TABLE"
 
116
><A
 
117
NAME="ARRAY-OPERATORS-TABLE"
 
118
></A
 
119
><P
 
120
><B
 
121
>Table 9-40. Array Operators</B
 
122
></P
 
123
><TABLE
 
124
BORDER="1"
 
125
CLASS="CALSTABLE"
 
126
><COL><COL><COL><COL><THEAD
 
127
><TR
 
128
><TH
 
129
>Operator</TH
 
130
><TH
 
131
>Description</TH
 
132
><TH
 
133
>Example</TH
 
134
><TH
 
135
>Result</TH
 
136
></TR
 
137
></THEAD
 
138
><TBODY
 
139
><TR
 
140
><TD
 
141
> <TT
 
142
CLASS="LITERAL"
 
143
>=</TT
 
144
> </TD
 
145
><TD
 
146
>equal</TD
 
147
><TD
 
148
><TT
 
149
CLASS="LITERAL"
 
150
>ARRAY[1.1,2.1,3.1]::int[] = ARRAY[1,2,3]</TT
 
151
></TD
 
152
><TD
 
153
><TT
 
154
CLASS="LITERAL"
 
155
>t</TT
 
156
></TD
 
157
></TR
 
158
><TR
 
159
><TD
 
160
> <TT
 
161
CLASS="LITERAL"
 
162
>&lt;&gt;</TT
 
163
> </TD
 
164
><TD
 
165
>not equal</TD
 
166
><TD
 
167
><TT
 
168
CLASS="LITERAL"
 
169
>ARRAY[1,2,3] &lt;&gt; ARRAY[1,2,4]</TT
 
170
></TD
 
171
><TD
 
172
><TT
 
173
CLASS="LITERAL"
 
174
>t</TT
 
175
></TD
 
176
></TR
 
177
><TR
 
178
><TD
 
179
> <TT
 
180
CLASS="LITERAL"
 
181
>&lt;</TT
 
182
> </TD
 
183
><TD
 
184
>less than</TD
 
185
><TD
 
186
><TT
 
187
CLASS="LITERAL"
 
188
>ARRAY[1,2,3] &lt; ARRAY[1,2,4]</TT
 
189
></TD
 
190
><TD
 
191
><TT
 
192
CLASS="LITERAL"
 
193
>t</TT
 
194
></TD
 
195
></TR
 
196
><TR
 
197
><TD
 
198
> <TT
 
199
CLASS="LITERAL"
 
200
>&gt;</TT
 
201
> </TD
 
202
><TD
 
203
>greater than</TD
 
204
><TD
 
205
><TT
 
206
CLASS="LITERAL"
 
207
>ARRAY[1,4,3] &gt; ARRAY[1,2,4]</TT
 
208
></TD
 
209
><TD
 
210
><TT
 
211
CLASS="LITERAL"
 
212
>t</TT
 
213
></TD
 
214
></TR
 
215
><TR
 
216
><TD
 
217
> <TT
 
218
CLASS="LITERAL"
 
219
>&lt;=</TT
 
220
> </TD
 
221
><TD
 
222
>less than or equal</TD
 
223
><TD
 
224
><TT
 
225
CLASS="LITERAL"
 
226
>ARRAY[1,2,3] &lt;= ARRAY[1,2,3]</TT
 
227
></TD
 
228
><TD
 
229
><TT
 
230
CLASS="LITERAL"
 
231
>t</TT
 
232
></TD
 
233
></TR
 
234
><TR
 
235
><TD
 
236
> <TT
 
237
CLASS="LITERAL"
 
238
>&gt;=</TT
 
239
> </TD
 
240
><TD
 
241
>greater than or equal</TD
 
242
><TD
 
243
><TT
 
244
CLASS="LITERAL"
 
245
>ARRAY[1,4,3] &gt;= ARRAY[1,4,3]</TT
 
246
></TD
 
247
><TD
 
248
><TT
 
249
CLASS="LITERAL"
 
250
>t</TT
 
251
></TD
 
252
></TR
 
253
><TR
 
254
><TD
 
255
> <TT
 
256
CLASS="LITERAL"
 
257
>@&gt;</TT
 
258
> </TD
 
259
><TD
 
260
>contains</TD
 
261
><TD
 
262
><TT
 
263
CLASS="LITERAL"
 
264
>ARRAY[1,4,3] @&gt; ARRAY[3,1]</TT
 
265
></TD
 
266
><TD
 
267
><TT
 
268
CLASS="LITERAL"
 
269
>t</TT
 
270
></TD
 
271
></TR
 
272
><TR
 
273
><TD
 
274
> <TT
 
275
CLASS="LITERAL"
 
276
>&lt;@</TT
 
277
> </TD
 
278
><TD
 
279
>is contained by</TD
 
280
><TD
 
281
><TT
 
282
CLASS="LITERAL"
 
283
>ARRAY[2,7] &lt;@ ARRAY[1,7,4,2,6]</TT
 
284
></TD
 
285
><TD
 
286
><TT
 
287
CLASS="LITERAL"
 
288
>t</TT
 
289
></TD
 
290
></TR
 
291
><TR
 
292
><TD
 
293
> <TT
 
294
CLASS="LITERAL"
 
295
>&amp;&amp;</TT
 
296
> </TD
 
297
><TD
 
298
>overlap (have elements in common)</TD
 
299
><TD
 
300
><TT
 
301
CLASS="LITERAL"
 
302
>ARRAY[1,4,3] &amp;&amp; ARRAY[2,1]</TT
 
303
></TD
 
304
><TD
 
305
><TT
 
306
CLASS="LITERAL"
 
307
>t</TT
 
308
></TD
 
309
></TR
 
310
><TR
 
311
><TD
 
312
> <TT
 
313
CLASS="LITERAL"
 
314
>||</TT
 
315
> </TD
 
316
><TD
 
317
>array-to-array concatenation</TD
 
318
><TD
 
319
><TT
 
320
CLASS="LITERAL"
 
321
>ARRAY[1,2,3] || ARRAY[4,5,6]</TT
 
322
></TD
 
323
><TD
 
324
><TT
 
325
CLASS="LITERAL"
 
326
>{1,2,3,4,5,6}</TT
 
327
></TD
 
328
></TR
 
329
><TR
 
330
><TD
 
331
> <TT
 
332
CLASS="LITERAL"
 
333
>||</TT
 
334
> </TD
 
335
><TD
 
336
>array-to-array concatenation</TD
 
337
><TD
 
338
><TT
 
339
CLASS="LITERAL"
 
340
>ARRAY[1,2,3] || ARRAY[[4,5,6],[7,8,9]]</TT
 
341
></TD
 
342
><TD
 
343
><TT
 
344
CLASS="LITERAL"
 
345
>{{1,2,3},{4,5,6},{7,8,9}}</TT
 
346
></TD
 
347
></TR
 
348
><TR
 
349
><TD
 
350
> <TT
 
351
CLASS="LITERAL"
 
352
>||</TT
 
353
> </TD
 
354
><TD
 
355
>element-to-array concatenation</TD
 
356
><TD
 
357
><TT
 
358
CLASS="LITERAL"
 
359
>3 || ARRAY[4,5,6]</TT
 
360
></TD
 
361
><TD
 
362
><TT
 
363
CLASS="LITERAL"
 
364
>{3,4,5,6}</TT
 
365
></TD
 
366
></TR
 
367
><TR
 
368
><TD
 
369
> <TT
 
370
CLASS="LITERAL"
 
371
>||</TT
 
372
> </TD
 
373
><TD
 
374
>array-to-element concatenation</TD
 
375
><TD
 
376
><TT
 
377
CLASS="LITERAL"
 
378
>ARRAY[4,5,6] || 7</TT
 
379
></TD
 
380
><TD
 
381
><TT
 
382
CLASS="LITERAL"
 
383
>{4,5,6,7}</TT
 
384
></TD
 
385
></TR
 
386
></TBODY
 
387
></TABLE
 
388
></DIV
 
389
><P
 
390
>   Array comparisons compare the array contents element-by-element,
 
391
   using the default B-tree comparison function for the element data type.
 
392
   In multidimensional arrays the elements are visited in row-major order
 
393
   (last subscript varies most rapidly).
 
394
   If the contents of two arrays are equal but the dimensionality is
 
395
   different, the first difference in the dimensionality information
 
396
   determines the sort order.  (This is a change from versions of
 
397
   <SPAN
 
398
CLASS="PRODUCTNAME"
 
399
>PostgreSQL</SPAN
 
400
> prior to 8.2: older versions would claim
 
401
   that two arrays with the same contents were equal, even if the
 
402
   number of dimensions or subscript ranges were different.)
 
403
  </P
 
404
><P
 
405
>   See <A
 
406
HREF="arrays.html"
 
407
>Section 8.14</A
 
408
> for more details about array operator
 
409
   behavior.
 
410
  </P
 
411
><P
 
412
>   <A
 
413
HREF="functions-array.html#ARRAY-FUNCTIONS-TABLE"
 
414
>Table 9-41</A
 
415
> shows the functions
 
416
   available for use with array types. See <A
 
417
HREF="arrays.html"
 
418
>Section 8.14</A
 
419
>
 
420
   for more information  and examples of the use of these functions.
 
421
  </P
 
422
><DIV
 
423
CLASS="TABLE"
 
424
><A
 
425
NAME="ARRAY-FUNCTIONS-TABLE"
 
426
></A
 
427
><P
 
428
><B
 
429
>Table 9-41. Array Functions</B
 
430
></P
 
431
><TABLE
 
432
BORDER="1"
 
433
CLASS="CALSTABLE"
 
434
><COL><COL><COL><COL><COL><THEAD
 
435
><TR
 
436
><TH
 
437
>Function</TH
 
438
><TH
 
439
>Return Type</TH
 
440
><TH
 
441
>Description</TH
 
442
><TH
 
443
>Example</TH
 
444
><TH
 
445
>Result</TH
 
446
></TR
 
447
></THEAD
 
448
><TBODY
 
449
><TR
 
450
><TD
 
451
>         <TT
 
452
CLASS="LITERAL"
 
453
>          <CODE
 
454
CLASS="FUNCTION"
 
455
>array_append</CODE
 
456
>(<TT
 
457
CLASS="TYPE"
 
458
>anyarray</TT
 
459
>, <TT
 
460
CLASS="TYPE"
 
461
>anyelement</TT
 
462
>)
 
463
         </TT
 
464
>
 
465
        </TD
 
466
><TD
 
467
><TT
 
468
CLASS="TYPE"
 
469
>anyarray</TT
 
470
></TD
 
471
><TD
 
472
>append an element to the end of an array</TD
 
473
><TD
 
474
><TT
 
475
CLASS="LITERAL"
 
476
>array_append(ARRAY[1,2], 3)</TT
 
477
></TD
 
478
><TD
 
479
><TT
 
480
CLASS="LITERAL"
 
481
>{1,2,3}</TT
 
482
></TD
 
483
></TR
 
484
><TR
 
485
><TD
 
486
>         <TT
 
487
CLASS="LITERAL"
 
488
>          <CODE
 
489
CLASS="FUNCTION"
 
490
>array_cat</CODE
 
491
>(<TT
 
492
CLASS="TYPE"
 
493
>anyarray</TT
 
494
>, <TT
 
495
CLASS="TYPE"
 
496
>anyarray</TT
 
497
>)
 
498
         </TT
 
499
>
 
500
        </TD
 
501
><TD
 
502
><TT
 
503
CLASS="TYPE"
 
504
>anyarray</TT
 
505
></TD
 
506
><TD
 
507
>concatenate two arrays</TD
 
508
><TD
 
509
><TT
 
510
CLASS="LITERAL"
 
511
>array_cat(ARRAY[1,2,3], ARRAY[4,5])</TT
 
512
></TD
 
513
><TD
 
514
><TT
 
515
CLASS="LITERAL"
 
516
>{1,2,3,4,5}</TT
 
517
></TD
 
518
></TR
 
519
><TR
 
520
><TD
 
521
>         <TT
 
522
CLASS="LITERAL"
 
523
>          <CODE
 
524
CLASS="FUNCTION"
 
525
>array_ndims</CODE
 
526
>(<TT
 
527
CLASS="TYPE"
 
528
>anyarray</TT
 
529
>)
 
530
         </TT
 
531
>
 
532
        </TD
 
533
><TD
 
534
><TT
 
535
CLASS="TYPE"
 
536
>int</TT
 
537
></TD
 
538
><TD
 
539
>returns the number of dimensions of the array</TD
 
540
><TD
 
541
><TT
 
542
CLASS="LITERAL"
 
543
>array_ndims(ARRAY[[1,2,3], [4,5,6]])</TT
 
544
></TD
 
545
><TD
 
546
><TT
 
547
CLASS="LITERAL"
 
548
>2</TT
 
549
></TD
 
550
></TR
 
551
><TR
 
552
><TD
 
553
>         <TT
 
554
CLASS="LITERAL"
 
555
>          <CODE
 
556
CLASS="FUNCTION"
 
557
>array_dims</CODE
 
558
>(<TT
 
559
CLASS="TYPE"
 
560
>anyarray</TT
 
561
>)
 
562
         </TT
 
563
>
 
564
        </TD
 
565
><TD
 
566
><TT
 
567
CLASS="TYPE"
 
568
>text</TT
 
569
></TD
 
570
><TD
 
571
>returns a text representation of array's dimensions</TD
 
572
><TD
 
573
><TT
 
574
CLASS="LITERAL"
 
575
>array_dims(ARRAY[[1,2,3], [4,5,6]])</TT
 
576
></TD
 
577
><TD
 
578
><TT
 
579
CLASS="LITERAL"
 
580
>[1:2][1:3]</TT
 
581
></TD
 
582
></TR
 
583
><TR
 
584
><TD
 
585
>         <TT
 
586
CLASS="LITERAL"
 
587
>          <CODE
 
588
CLASS="FUNCTION"
 
589
>array_fill</CODE
 
590
>(<TT
 
591
CLASS="TYPE"
 
592
>anyelement</TT
 
593
>, <TT
 
594
CLASS="TYPE"
 
595
>int[]</TT
 
596
>,
 
597
          [<SPAN
 
598
CLASS="OPTIONAL"
 
599
>, <TT
 
600
CLASS="TYPE"
 
601
>int[]</TT
 
602
></SPAN
 
603
>])
 
604
         </TT
 
605
>
 
606
        </TD
 
607
><TD
 
608
><TT
 
609
CLASS="TYPE"
 
610
>anyarray</TT
 
611
></TD
 
612
><TD
 
613
>returns an array initialized with supplied value and
 
614
         dimensions, optionally with lower bounds other than 1</TD
 
615
><TD
 
616
><TT
 
617
CLASS="LITERAL"
 
618
>array_fill(7, ARRAY[3], ARRAY[2])</TT
 
619
></TD
 
620
><TD
 
621
><TT
 
622
CLASS="LITERAL"
 
623
>[2:4]={7,7,7}</TT
 
624
></TD
 
625
></TR
 
626
><TR
 
627
><TD
 
628
>         <TT
 
629
CLASS="LITERAL"
 
630
>          <CODE
 
631
CLASS="FUNCTION"
 
632
>array_length</CODE
 
633
>(<TT
 
634
CLASS="TYPE"
 
635
>anyarray</TT
 
636
>, <TT
 
637
CLASS="TYPE"
 
638
>int</TT
 
639
>)
 
640
         </TT
 
641
>
 
642
        </TD
 
643
><TD
 
644
><TT
 
645
CLASS="TYPE"
 
646
>int</TT
 
647
></TD
 
648
><TD
 
649
>returns the length of the requested array dimension</TD
 
650
><TD
 
651
><TT
 
652
CLASS="LITERAL"
 
653
>array_length(array[1,2,3], 1)</TT
 
654
></TD
 
655
><TD
 
656
><TT
 
657
CLASS="LITERAL"
 
658
>3</TT
 
659
></TD
 
660
></TR
 
661
><TR
 
662
><TD
 
663
>         <TT
 
664
CLASS="LITERAL"
 
665
>          <CODE
 
666
CLASS="FUNCTION"
 
667
>array_lower</CODE
 
668
>(<TT
 
669
CLASS="TYPE"
 
670
>anyarray</TT
 
671
>, <TT
 
672
CLASS="TYPE"
 
673
>int</TT
 
674
>)
 
675
         </TT
 
676
>
 
677
        </TD
 
678
><TD
 
679
><TT
 
680
CLASS="TYPE"
 
681
>int</TT
 
682
></TD
 
683
><TD
 
684
>returns lower bound of the requested array dimension</TD
 
685
><TD
 
686
><TT
 
687
CLASS="LITERAL"
 
688
>array_lower('[0:2]={1,2,3}'::int[], 1)</TT
 
689
></TD
 
690
><TD
 
691
><TT
 
692
CLASS="LITERAL"
 
693
>0</TT
 
694
></TD
 
695
></TR
 
696
><TR
 
697
><TD
 
698
>         <TT
 
699
CLASS="LITERAL"
 
700
>          <CODE
 
701
CLASS="FUNCTION"
 
702
>array_prepend</CODE
 
703
>(<TT
 
704
CLASS="TYPE"
 
705
>anyelement</TT
 
706
>, <TT
 
707
CLASS="TYPE"
 
708
>anyarray</TT
 
709
>)
 
710
         </TT
 
711
>
 
712
        </TD
 
713
><TD
 
714
><TT
 
715
CLASS="TYPE"
 
716
>anyarray</TT
 
717
></TD
 
718
><TD
 
719
>append an element to the beginning of an array</TD
 
720
><TD
 
721
><TT
 
722
CLASS="LITERAL"
 
723
>array_prepend(1, ARRAY[2,3])</TT
 
724
></TD
 
725
><TD
 
726
><TT
 
727
CLASS="LITERAL"
 
728
>{1,2,3}</TT
 
729
></TD
 
730
></TR
 
731
><TR
 
732
><TD
 
733
>         <TT
 
734
CLASS="LITERAL"
 
735
>          <CODE
 
736
CLASS="FUNCTION"
 
737
>array_to_string</CODE
 
738
>(<TT
 
739
CLASS="TYPE"
 
740
>anyarray</TT
 
741
>, <TT
 
742
CLASS="TYPE"
 
743
>text</TT
 
744
> [<SPAN
 
745
CLASS="OPTIONAL"
 
746
>, <TT
 
747
CLASS="TYPE"
 
748
>text</TT
 
749
></SPAN
 
750
>])
 
751
         </TT
 
752
>
 
753
        </TD
 
754
><TD
 
755
><TT
 
756
CLASS="TYPE"
 
757
>text</TT
 
758
></TD
 
759
><TD
 
760
>concatenates array elements using supplied delimiter and
 
761
         optional null string</TD
 
762
><TD
 
763
><TT
 
764
CLASS="LITERAL"
 
765
>array_to_string(ARRAY[1, 2, 3, NULL, 5], ',', '*')</TT
 
766
></TD
 
767
><TD
 
768
><TT
 
769
CLASS="LITERAL"
 
770
>1,2,3,*,5</TT
 
771
></TD
 
772
></TR
 
773
><TR
 
774
><TD
 
775
>         <TT
 
776
CLASS="LITERAL"
 
777
>          <CODE
 
778
CLASS="FUNCTION"
 
779
>array_upper</CODE
 
780
>(<TT
 
781
CLASS="TYPE"
 
782
>anyarray</TT
 
783
>, <TT
 
784
CLASS="TYPE"
 
785
>int</TT
 
786
>)
 
787
         </TT
 
788
>
 
789
        </TD
 
790
><TD
 
791
><TT
 
792
CLASS="TYPE"
 
793
>int</TT
 
794
></TD
 
795
><TD
 
796
>returns upper bound of the requested array dimension</TD
 
797
><TD
 
798
><TT
 
799
CLASS="LITERAL"
 
800
>array_upper(ARRAY[1,8,3,7], 1)</TT
 
801
></TD
 
802
><TD
 
803
><TT
 
804
CLASS="LITERAL"
 
805
>4</TT
 
806
></TD
 
807
></TR
 
808
><TR
 
809
><TD
 
810
>         <TT
 
811
CLASS="LITERAL"
 
812
>          <CODE
 
813
CLASS="FUNCTION"
 
814
>string_to_array</CODE
 
815
>(<TT
 
816
CLASS="TYPE"
 
817
>text</TT
 
818
>, <TT
 
819
CLASS="TYPE"
 
820
>text</TT
 
821
> [<SPAN
 
822
CLASS="OPTIONAL"
 
823
>, <TT
 
824
CLASS="TYPE"
 
825
>text</TT
 
826
></SPAN
 
827
>])
 
828
         </TT
 
829
>
 
830
        </TD
 
831
><TD
 
832
><TT
 
833
CLASS="TYPE"
 
834
>text[]</TT
 
835
></TD
 
836
><TD
 
837
>splits string into array elements using supplied delimiter and
 
838
         optional null string</TD
 
839
><TD
 
840
><TT
 
841
CLASS="LITERAL"
 
842
>string_to_array('xx~^~yy~^~zz', '~^~', 'yy')</TT
 
843
></TD
 
844
><TD
 
845
><TT
 
846
CLASS="LITERAL"
 
847
>{xx,NULL,zz}</TT
 
848
></TD
 
849
></TR
 
850
><TR
 
851
><TD
 
852
>         <TT
 
853
CLASS="LITERAL"
 
854
>          <CODE
 
855
CLASS="FUNCTION"
 
856
>unnest</CODE
 
857
>(<TT
 
858
CLASS="TYPE"
 
859
>anyarray</TT
 
860
>)
 
861
         </TT
 
862
>
 
863
        </TD
 
864
><TD
 
865
><TT
 
866
CLASS="TYPE"
 
867
>setof anyelement</TT
 
868
></TD
 
869
><TD
 
870
>expand an array to a set of rows</TD
 
871
><TD
 
872
><TT
 
873
CLASS="LITERAL"
 
874
>unnest(ARRAY[1,2])</TT
 
875
></TD
 
876
><TD
 
877
><PRE
 
878
CLASS="LITERALLAYOUT"
 
879
>1
 
880
2</PRE
 
881
>(2 rows)</TD
 
882
></TR
 
883
></TBODY
 
884
></TABLE
 
885
></DIV
 
886
><P
 
887
>    In <CODE
 
888
CLASS="FUNCTION"
 
889
>string_to_array</CODE
 
890
>, if the delimiter parameter is
 
891
    NULL, each character in the input string will become a separate element in
 
892
    the resulting array.  If the delimiter is an empty string, then the entire
 
893
    input string is returned as a one-element array.  Otherwise the input
 
894
    string is split at each occurrence of the delimiter string.
 
895
   </P
 
896
><P
 
897
>    In <CODE
 
898
CLASS="FUNCTION"
 
899
>string_to_array</CODE
 
900
>, if the null-string parameter
 
901
    is omitted or NULL, none of the substrings of the input will be replaced
 
902
    by NULL.
 
903
    In <CODE
 
904
CLASS="FUNCTION"
 
905
>array_to_string</CODE
 
906
>, if the null-string parameter
 
907
    is omitted or NULL, any null elements in the array are simply skipped
 
908
    and not represented in the output string.
 
909
   </P
 
910
><DIV
 
911
CLASS="NOTE"
 
912
><BLOCKQUOTE
 
913
CLASS="NOTE"
 
914
><P
 
915
><B
 
916
>Note: </B
 
917
>     There are two differences in the behavior of <CODE
 
918
CLASS="FUNCTION"
 
919
>string_to_array</CODE
 
920
>
 
921
     from pre-9.1 versions of <SPAN
 
922
CLASS="PRODUCTNAME"
 
923
>PostgreSQL</SPAN
 
924
>.
 
925
     First, it will return an empty (zero-element) array rather than NULL when
 
926
     the input string is of zero length.  Second, if the delimiter string is
 
927
     NULL, the function splits the input into individual characters, rather
 
928
     than returning NULL as before.
 
929
    </P
 
930
></BLOCKQUOTE
 
931
></DIV
 
932
><P
 
933
>    See also <A
 
934
HREF="functions-aggregate.html"
 
935
>Section 9.18</A
 
936
> about the aggregate
 
937
    function <CODE
 
938
CLASS="FUNCTION"
 
939
>array_agg</CODE
 
940
> for use with arrays.
 
941
   </P
 
942
></DIV
 
943
><DIV
 
944
CLASS="NAVFOOTER"
 
945
><HR
 
946
ALIGN="LEFT"
 
947
WIDTH="100%"><TABLE
 
948
SUMMARY="Footer navigation table"
 
949
WIDTH="100%"
 
950
BORDER="0"
 
951
CELLPADDING="0"
 
952
CELLSPACING="0"
 
953
><TR
 
954
><TD
 
955
WIDTH="33%"
 
956
ALIGN="left"
 
957
VALIGN="top"
 
958
><A
 
959
HREF="functions-conditional.html"
 
960
ACCESSKEY="P"
 
961
>Prev</A
 
962
></TD
 
963
><TD
 
964
WIDTH="34%"
 
965
ALIGN="center"
 
966
VALIGN="top"
 
967
><A
 
968
HREF="index.html"
 
969
ACCESSKEY="H"
 
970
>Home</A
 
971
></TD
 
972
><TD
 
973
WIDTH="33%"
 
974
ALIGN="right"
 
975
VALIGN="top"
 
976
><A
 
977
HREF="functions-aggregate.html"
 
978
ACCESSKEY="N"
 
979
>Next</A
 
980
></TD
 
981
></TR
 
982
><TR
 
983
><TD
 
984
WIDTH="33%"
 
985
ALIGN="left"
 
986
VALIGN="top"
 
987
>Conditional Expressions</TD
 
988
><TD
 
989
WIDTH="34%"
 
990
ALIGN="center"
 
991
VALIGN="top"
 
992
><A
 
993
HREF="functions.html"
 
994
ACCESSKEY="U"
 
995
>Up</A
 
996
></TD
 
997
><TD
 
998
WIDTH="33%"
 
999
ALIGN="right"
 
1000
VALIGN="top"
 
1001
>Aggregate Functions</TD
 
1002
></TR
 
1003
></TABLE
 
1004
></DIV
 
1005
></BODY
 
1006
></HTML
 
1007
>
 
 
b'\\ No newline at end of file'