ST_SymDifference
Name
ST_SymDifference — Returns a geometry representing the portions of geometries A and B that do not intersect.
Synopsis
    
     geometry
     
      ST_SymDifference
     
     (
    
    geometry
    
     geomA
    
    , geometry
    
     geomB
    
    , float8
    
     gridSize = -1
    
    
     )
    
    ;
   
Description
   Returns a geometry representing the portions of geonetries A and B
            that do not intersect.
            This is equivalent to
   
    ST_Union(A,B) - ST_Intersection(A,B)
   
   .
            It is called a symmetric difference because
   
    ST_SymDifference(A,B) = ST_SymDifference(B,A)
   
   .
  
   If the optional
   
    gridSize
   
   argument is provided, the inputs are
snapped to a grid of the given size, and the result vertices are computed
on that same grid. (Requires GEOS-3.9.0 or higher)
  
Performed by the GEOS module
Enhanced: 3.1.0 accept a gridSize parameter - requires GEOS >= 3.9.0
   
    
   
   This method implements the
   
    OpenGIS Simple Features
 Implementation Specification for SQL 1.1.
   
   s2.1.1.3
  
   
    
   
   This method implements the SQL/MM specification. SQL-MM 3: 5.1.21
  
   
    
   
   This function supports 3d and will not drop the z-index. However, the result is computed using XY only.
            The result Z values are copied, averaged or interpolated.
  
Examples
| 
        
  
         The original linestrings shown together 
  | 
      
        
         The symmetric difference of the two linestrings 
  | 
     
--Safe for 2d - symmetric difference of 2 linestrings
SELECT ST_AsText(
    ST_SymDifference(
        ST_GeomFromText('LINESTRING(50 100, 50 200)'),
        ST_GeomFromText('LINESTRING(50 50, 50 150)')
    )
);
st_astext
---------
MULTILINESTRING((50 150,50 200),(50 50,50 100))
  
--When used in 3d doesn't quite do the right thing
SELECT ST_AsEWKT(ST_SymDifference(ST_GeomFromEWKT('LINESTRING(1 2 1, 1 4 2)'),
    ST_GeomFromEWKT('LINESTRING(1 1 3, 1 3 4)')))
st_astext
------------
MULTILINESTRING((1 3 2.75,1 4 2),(1 1 3,1 2 2.25))