在 PostgreSQL 中,行和数组是两种不同的数据类型,它们之间的比较方式也有所不同。以下是有关 PostgreSQL 行(record)和数组比较的一些示例:

行(Record)比较:

1. 行的相等比较:
   - 描述:比较两个行是否相等。
   - 示例:
     SELECT (ROW(1, 'John') = ROW(1, 'John')) AS are_equal;

2. 行的不等比较:
   - 描述:比较两个行是否不相等。
   - 示例:
     SELECT (ROW(1, 'John') <> ROW(2, 'Doe')) AS not_equal;

数组比较:

1. 数组的相等比较:
   - 描述:比较两个数组是否相等。
   - 示例:
     SELECT ARRAY[1, 2, 3] = ARRAY[1, 2, 3] AS are_equal;

2. 数组的不等比较:
   - 描述:比较两个数组是否不相等。
   - 示例:
     SELECT ARRAY[1, 2, 3] <> ARRAY[4, 5, 6] AS not_equal;

3. 数组的包含比较:
   - 描述:检查一个数组是否包含在另一个数组中。
   - 示例:
     SELECT ARRAY[1, 2] @> ARRAY[1, 2, 3] AS contains;

4. 数组的包含于比较:
   - 描述:检查一个数组是否被包含在另一个数组中。
   - 示例:
     SELECT ARRAY[1, 2] <@ ARRAY[1, 2, 3] AS contained_in;

行和数组的比较:

1. 行和数组的相等比较:
   - 描述:比较行和数组是否相等。
   - 示例:
     SELECT (ROW(1, 'John') = ARRAY[1, 'John']) AS are_equal;

2. 行和数组的不等比较:
   - 描述:比较行和数组是否不相等。
   - 示例:
     SELECT (ROW(1, 'John') <> ARRAY[2, 'Doe']) AS not_equal;

3. 数组包含行比较:
   - 描述:检查一个数组是否包含某个行。
   - 示例:
     SELECT ARRAY[ROW(1, 'John'), ROW(2, 'Doe')] @> ROW(1, 'John') AS contains_row;

4. 行包含于数组比较:
   - 描述:检查一个行是否被包含在数组中。
   - 示例:
     SELECT ROW(1, 'John') <@ ARRAY[ROW(1, 'John'), ROW(2, 'Doe')] AS row_contained_in_array;

这些比较操作展示了如何在 PostgreSQL 中对行和数组进行比较,以及如何检查数组是否包含特定的元素。根据你的具体需求,选择适当的比较操作符来执行相应的比较。


转载请注明出处:http://www.zyzy.cn/article/detail/8192/PostgreSQL