PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Postgres CTE :wpisz znak zmienny(255)[] w nierekurencyjnym terminie, ale wpisz znak zmienny[] ogólnie

Spróbuj przesłać SELECT listy w terminach rekurencyjnych i nierekurencyjnych do varchar .

WITH RECURSIVE search_graph(path, last_profile1, last_profile2) AS (
    SELECT ARRAY[id]::varchar[], id::varchar, id::varchar
    FROM node WHERE id = '408d6b12-d03e-42c2-a2a7-066b3c060a0b'
  UNION ALL
    SELECT (sg.path || m.toid || m.fromid)::varchar[], m.fromid::varchar, m.toid::varchar
    FROM search_graph sg
    JOIN rel m
    ON (m.fromid = sg.last_profile2 AND NOT sg.path @> ARRAY[m.toid]) 
       OR (m.toid = sg.last_profile1 AND NOT sg.path @> ARRAY[m.fromid])
)
SELECT DISTINCT unnest(path) FROM search_graph;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Agregacja wszystkich wartości spoza tej samej grupy

  2. Postgis / Geodjango:Nie można określić wersji PostGIS dla bazy danych

  3. Dlaczego PostgreSQL połączył użytkowników i grupy w role?

  4. Django - (OperationalError) FATAL:Uwierzytelnianie identyfikatora nie powiodło się dla użytkownika o nazwie użytkownika

  5. Wartość błędu nie istnieje - postgresql INSERT INTO