MAPCONTAINSVALUE

确定 VMap 是否含有指定值。如果值存在,则使用此标量函数返回 true (t),否则返回 false (f)。

语法

MAPCONTAINSVALUE (VMap-data, 'virtual-column-value')

参数

VMap-data

任何 Vmap 数据。Vmap 的存在形式可以是:

  • Flex 表的 __raw__

  • 从映射函数返回的数据(示例) MAPLOOKUP

  • 其他数据库内容

virtual-column-value
要确认的值。

示例

本例显示如何使用 mapcontainsvalue() 确定虚拟列是否含有特定值。创建一个 flex 表 (ftest),填充一些虚拟列和值。为虚拟列 one命名:

=> CREATE FLEX TABLE ftest();
CREATE TABLE
=> copy ftest from stdin parser fjsonparser();
Enter data to be copied followed by a newline.
End with a backslash and a period on a line by itself.
>> {"one":1, "two":2}
>> {"one":"one","2":"2"}
>> \.

mapcontainsvalue() 映射数据上调用 ftest 。查询对第一个虚拟列返回 false (f) ,对含有值 t的第二个返回 true (one)。


=> SELECT MAPCONTAINSVALUE(__raw__, 'one') FROM ftest;
mapcontainsvalue
------------------
f
t
(2 rows)

另请参阅