SQL-避免重复列
这是我的代码,我想在其中只显示一次A.SITES_代码和A.SITES_名称,它们完全相同。这是我的代码,我尝试了HAVING函数,但它没有满足我的标准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
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;