9.3.?crosstabN(text)

crosstabN(text sql)

crosstabN系列函数是为普通crosstab函数设置自定义封装器的示例,这样不需要在调用的SELECT查询中写出列名和类型。tablefunc模块包括crosstab2、crosstab3以及crosstab4,它们的输入行类型被定义为:

CREATE TYPE tablefunc_crosstab_N AS (
    row_name TEXT,
    category_1 TEXT,
    category_2 TEXT,
        .
        .
        .
    category_N TEXT
);

因此,当输入查询产生类型为text的列row_name和value并且想要2、3或4个输出值列时,函数可以被直接使用。在所有其他方法中,它们的行为都和上面的一般crosstab函数完全相同。

例如,前一节给出的示例也可以这样来做:

SELECT *
FROM crosstab3(
  'select rowid, attribute, value
   from ct
   where attribute = ''att2'' or attribute = ''att3''
   order by 1,2');

这些函数主要是出于举例的目的而提供。可以基于底层的crosstab()函数创建自己的返回类型和函数。有两种方法来做:

XML 地图 | Sitemap 地图