在测试一组值时,我总是很容易地使用IN (val1, val2, ...)
语法.然而,我想知道它的实际计算结果是什么类型的数据 struct ,这是一个表函数吗?例如:
-- to populate data
CREATE TABLE main_territory (
name varchar NOT NULL,
is_fake_territory integer NOT NULL,
code varchar NOT NULL
);
INSERT INTO main_territory (name, is_fake_territory, code) VALUES ('Afghanistan', 0, 'AF'), ('Albania', 0, 'AL'), ('Algeria', 0, 'DZ');
select '1' as "query#", * from main_territory where code in ('AF', 'AL') union all
select '2' as "query#", * from main_territory where code in (select 'AF' UNION ALL select 'AL') UNION ALL
select '3' as "query#", * from main_territory where code in (select code from main_territory where name ='Albania' or name = 'Afghanistan')
第二个和第三个查询返回一个单列表(这称为标量表吗?),所以我可以想象做(expr1, expr2, ...)
次同样的事情——它的计算结果是一个单列表.这是准确的,还是实际的数据类型?