SELECT
    dk.*,
    st_area (dk.geom :: geography) AS area,
    st_asewkt (dk.geom) AS ewkt
FROM
    "TB_GHDKA" AS dk
WHERE
    ST_Contains (
        ST_GeomFromText (
            'POLYGON ((109.51142919411961 18.322906808030652, 109.51382391646248 18.323160890707612, 109.51812407725552 18.318549085673954, 109.52096478636398 18.31677099219241, 109.52639647097506 18.31534849921383, 109.52681717214205 18.307529099172545, 109.51255360145637 18.30725787066725, 109.50859860338323 18.311988017573178, 109.51142919411961 18.322906808030652))',
            4326
        ),
        dk.geom
    )
    AND dk.kzxxgyddm like '%090101%'
    AND ST_Area (dk.geom :: geography) >= 12000
    AND ST_Area (dk.geom :: geography) <= 40000
    AND NOT EXISTS (
        SELECT
            1
        FROM
            "TB_YJJBNTBH" AS nt
        WHERE
            ST_Intersects (dk.geom, nt.geom)
    )
    AND EXISTS (
        SELECT
            1
        FROM
            "TB_CZKFBJ" AS bj
        WHERE
            ST_Contains (bj.geom, dk.geom)
    );