
# 数组操作符
数组比较是使用默认的B-tree比较函数对所有元素逐一进行比较的。多维数组的元素按照行顺序进行访问。如果两个数组的内容相同但维数不等，决定排序顺序的首要因素是维数。
DWS支持的数组操作符如[表1]所示
 表1数组操作符 
| 分类    | 功能                       | 对应操作符                                                        | 简单示例                                                               |
|:---|:---|:---|:---|
| 比大小   | 比较两个数组是否相等。              | [=]     | ``` SELECT ARRAY[1.1,2.1,3.1]::int[] = ARRAY[1,2,3] AS RESULT; ``` |
| 比大小   | 判断两个数组是否不相等。             | [\<\>]  | ``` SELECT ARRAY[1,2,3] <> ARRAY[1,2,4] AS RESULT; ```             |
| 比大小   | 判断一个数组是否小于另一个数组。         | [\<]   | ``` SELECT ARRAY[1,2,3] < ARRAY[1,2,4] AS RESULT; ```              |
| 比大小   | 判断一个数组是否大于另一个数组。         | [\>]    | ``` SELECT ARRAY[1,4,3] > ARRAY[1,2,4] AS RESULT; ```              |
| 比大小   | 判断一个数组是否小于或等于另一个数组。      | [\<=]   | ``` SELECT ARRAY[1,2,3] <= ARRAY[1,2,3] AS RESULT; ```             |
| 比大小   | 判断一个数组是否大于或等于另一个数组。      | [\>=]   | ``` SELECT ARRAY[1,4,3] >= ARRAY[1,4,3] AS RESULT; ```             |
| 包含或重叠 | 判断一个数组是否包含另一个数组。         | [@\>]   | ``` SELECT ARRAY[1,4,3] @> ARRAY[3,1] AS RESULT; ```               |
| 包含或重叠 | 判断一个数组是否被包含于另一个数组。       | [\<@]   | ``` SELECT ARRAY[2,7] <@ ARRAY[1,7,4,2,6] AS RESULT; ```           |
| 包含或重叠 | 判断一个数组是否和另一个数组重叠（有共同元素）。 | [\&\&]  | ``` SELECT ARRAY[1,4,3] && ARRAY[2,1] AS RESULT; ```               |
| 连接    | 数组与数组进行连接。               | [\|\|]    | ``` SELECT ARRAY[1,2,3] || ARRAY[4,5,6] AS RESULT; ```             |
| 连接    | 元素与数组进行连接。               | [\|\|]    | ``` SELECT 3 || ARRAY[4,5,6] AS RESULT; ```                        |
| 连接    | 数组与元素进行连接。               | [\|\|] | ``` SELECT ARRAY[4,5,6] || 7 AS RESULT; ```                        |
   
 #### =
描述：两个数组是否相等
示例：
```
SELECT ARRAY[1.1,2.1,3.1]::int[] = ARRAY[1,2,3] AS RESULT;
 result 
--------
 t
(1 row)
```
 #### \<\>
描述：两个数组是否不相等
示例：
```
SELECT ARRAY[1,2,3] <> ARRAY[1,2,4] AS RESULT;
 result 
--------
 t
(1 row)
```
 #### \<
描述：一个数组是否小于另一个数组
示例：
```
SELECT ARRAY[1,2,3] < ARRAY[1,2,4] AS RESULT;
 result 
--------
 t
(1 row)
```
 #### \>
描述：一个数组是否大于另一个数组
示例：
```
SELECT ARRAY[1,4,3] > ARRAY[1,2,4] AS RESULT;
 result 
--------
 t
(1 row)
```
 #### \<=
描述：一个数组是否小于或等于另一个数组
示例：
```
SELECT ARRAY[1,2,3] <= ARRAY[1,2,3] AS RESULT;
 result 
--------
 t
(1 row)
```
 #### \>=
描述：一个数组是否大于或等于另一个数组
示例：
```
SELECT ARRAY[1,4,3] >= ARRAY[1,4,3] AS RESULT;
 result 
--------
 t
(1 row)
```
 #### @\>
描述：一个数组是否包含另一个数组
示例：
```
SELECT ARRAY[1,4,3] @> ARRAY[3,1] AS RESULT;
 result 
--------
 t
(1 row)
```
 #### \<@
描述：一个数组是否被包含于另一个数组
示例：
```
SELECT ARRAY[2,7] <@ ARRAY[1,7,4,2,6] AS RESULT;
 result 
--------
 t
(1 row)
```
 #### \&\&
描述：一个数组是否和另一个数组重叠（有共同元素）
示例：
```
SELECT ARRAY[1,4,3] && ARRAY[2,1] AS RESULT;
 result 
--------
 t
(1 row)
```
 #### \|\|
描述：数组与数组进行连接
示例：
```
SELECT ARRAY[1,2,3] || ARRAY[4,5,6] AS RESULT;
    result     
---------------
 {1,2,3,4,5,6}
(1 row)
```
```
SELECT ARRAY[1,2,3] || ARRAY[[4,5,6],[7,8,9]] AS RESULT;
          result           
---------------------------
 {{1,2,3},{4,5,6},{7,8,9}}
(1 row)
```
 #### \|\|
描述：元素与数组进行连接
示例：
```
SELECT 3 || ARRAY[4,5,6] AS RESULT;
  result   
-----------
 {3,4,5,6}
(1 row)
```
 #### \|\|
描述：数组与元素进行连接
示例：
```
SELECT ARRAY[4,5,6] || 7 AS RESULT;
  result   
-----------
 {4,5,6,7}
(1 row)
```
