SQL-避免重复列

SQL-避免重复列,sql,oracle,oracle-apex,Sql,Oracle,Oracle Apex,这是我的代码,我想在其中只显示一次A.SITES_代码和A.SITES_名称,它们完全相同。这是我的代码,我尝试了HAVING函数,但它没有满足我的标准 SELECT A.SITES_CODE, A.SITES_NAME, D.DESCRIPTION FROM ZZZ_SITES_AVAILABLE A, ZZZ_DIFFICULTY_RATINGS D, ZZZ_SITES_VISITED V, ZZZ_HOLIDAY_DETAILS H WHERE A.SITE

这是我的代码,我想在其中只显示一次A.SITES_代码和A.SITES_名称,它们完全相同。这是我的代码,我尝试了HAVING函数,但它没有满足我的标准

SELECT     A.SITES_CODE, A.SITES_NAME, D.DESCRIPTION
FROM       ZZZ_SITES_AVAILABLE A, ZZZ_DIFFICULTY_RATINGS D, ZZZ_SITES_VISITED V, ZZZ_HOLIDAY_DETAILS H
WHERE      A.SITES_CODE = V.SITES_CODE
AND        V.CODE_OF_HOLIDAY = H.CODE_OF_HOLIDAY
AND        H.DIFFICULTY_RATING = D.HOLIDAY_DIFFICULTY
AND        LENGTH(D.DESCRIPTION) > 6
GROUP BY   A.SITES_CODE, A.SITES_NAME, D.DESCRIPTION
HAVING     COUNT(*) >= 1
ORDER BY   A.SITES_CODE;
您需要按从组中删除说明。在此过程中,您还应该学习使用正确的ANSI标准联接语法:


那么在您的示例中,您希望sites_code=101和sites_name=yosemite显示一次?在该场景中,由于这两个值不相同,说明列将显示什么。对于SITESYOLD=107和105和SITESYNAMON= ZION和旧金山,也同样如此。在这些示例中,“说明”列中会显示什么。说明仍将被删除,只是为了检查“我的长度”函数是否正常工作,说明长度只要超过6个字符就无所谓。从所选内容中删除描述并不能解决问题。您是只想返回具有重复行的行还是返回所有内容,但对于重复行,只需返回一次。是的,我知道,我确实使用了一点,但我发现这种传统的方式更容易理解,但似乎它并不总是像我希望的那样工作。非常感谢。
SELECT A.SITES_CODE, A.SITES_NAME
FROM ZZZ_SITES_AVAILABLE A JOIN
     ZZZ_SITES_VISITED V
     ON A.SITES_CODE = V.SITES_CODE JOIN
     ZZZ_HOLIDAY_DETAILS H
     ON V.CODE_OF_HOLIDAY = H.CODE_OF_HOLIDAY JOIN
     ZZZ_DIFFICULTY_RATINGS D
     ON H.DIFFICULTY_RATING = D.HOLIDAY_DIFFICULTY
WHERE    LENGTH(D.DESCRIPTION) > 6
GROUP BY   A.SITES_CODE, A.SITES_NAME
HAVING     COUNT(*) >= 1
ORDER BY   A.SITES_CODE;