我正在开发一些scala查询生成器。
我的一列是Map[Int, Int]
一个SQL查询如何查询一对值?
类似:
WHERE Map[KEY] >= VALUE
如何在SQL的列中访问Map上的一个值?
语法可以使用Postgresql或Athena。如果我知道查询的名称,那么我总是可以用谷歌搜索其他名称。
谢谢。
答案 0 :(得分:0)
找到解决方案:
来自https://docs.aws.amazon.com/athena/latest/ug/maps.html
您可以去雅典娜awsna并运行:
WITH dataset AS (
SELECT MAP(
ARRAY['first', 'last', 'age'],
ARRAY['Bob', 'Smith', '35']
) AS user UNION ALL
SELECT MAP(
ARRAY['first', 'last', 'age'],
ARRAY['john', 'doe', '12']
) AS user
)
SELECT user FROM dataset WHERE CAST(user['age'] AS bigint) > 20
所以答案就是我在示例中所问的!哈哈
WHERE map[key] <operator> <value>
如果您正在这样做:
SELECT user FROM dataset WHERE CAST(user['test'] AS bigint) > 20
键test
不存在,它将返回0行。