transponer multiples funcion filas ejemplo convertir columnas agregado sql postgresql split set-returning-functions

sql - multiples - Dividir la columna en mĂșltiples filas en Postgres



transponer filas en columnas mysql (1)

Supongamos que tengo una tabla como esta:

subject | flag ----------------+------ this is a test | 2

subject es de tipo text y la flag es de tipo int . Me gustaría transformar esta tabla en algo como esto en Postgres:

token | flag ----------------+------ this | 2 is | 2 a | 2 test | 2

¿Hay una forma fácil de hacer esto?


En Postgres 9.3+ use una combinación LATERAL :

SELECT s.token, flag FROM tbl t, unnest(string_to_array(t.subject, '' '')) s(token) WHERE flag = 2;

Tenga en cuenta que la forma abreviada de una combinación LATERAL solo devuelve filas, si unnest() realidad devuelve fila (s).

También puede usar regexp_split_to_table() , pero eso suele ser más lento porque la comparación de expresiones regulares cuesta un poco más.
Relacionado: