如何隐藏 SELECT 中的列
how to hide a column in SELECT
我必须得到一个要隐藏 select 的列。更具体地说 s.spelersnr 但我不知道怎么做。
我尝试在我的 ORDER BY 中使用 select 列,但我不想让它显示在结果中。
SELECT DISTINCT naam,voorletters, TO_CHAR(geb_datum,'dd-mm-yyyy') AS
geboortedatum, b.spelersnr
FROM spelers s LEFT OUTER JOIN boetes b
ON (s.spelersnr = b.spelersnr)
WHERE b.bedrag<75 OR b.bedrag IS null
ORDER BY b.spelersnr
我应该得到一个没有列的结果 b.spelersnr。
但是我确实得到了那个我该如何隐藏它?
使用GROUP BY
:
SELECT naam, voorletters, TO_CHAR(geb_datum,'dd-mm-yyyy') AS geboortedatum
FROM spelers s LEFT JOIN
boetes b
ON s.spelersnr = b.spelersnr
WHERE b.bedrag < 75 OR b.bedrag IS null
GROUP BY naam, voorletters, geboortedatum, b.spelersnr
ORDER BY b.spelersnr;
我不明白你为什么要这样做——当导致重复的列被隐藏时,生成重复的结果。
我猜你不想要这个逻辑,而是:
FROM spelers s LEFT JOIN
boetes b
ON s.spelersnr = b.spelersnr AND b.bedrag < 75
returns 来自 spelers
的所有行与来自 boetes
的匹配值,其中 b.bedrag < 75
.
我必须得到一个要隐藏 select 的列。更具体地说 s.spelersnr 但我不知道怎么做。
我尝试在我的 ORDER BY 中使用 select 列,但我不想让它显示在结果中。
SELECT DISTINCT naam,voorletters, TO_CHAR(geb_datum,'dd-mm-yyyy') AS
geboortedatum, b.spelersnr
FROM spelers s LEFT OUTER JOIN boetes b
ON (s.spelersnr = b.spelersnr)
WHERE b.bedrag<75 OR b.bedrag IS null
ORDER BY b.spelersnr
我应该得到一个没有列的结果 b.spelersnr。 但是我确实得到了那个我该如何隐藏它?
使用GROUP BY
:
SELECT naam, voorletters, TO_CHAR(geb_datum,'dd-mm-yyyy') AS geboortedatum
FROM spelers s LEFT JOIN
boetes b
ON s.spelersnr = b.spelersnr
WHERE b.bedrag < 75 OR b.bedrag IS null
GROUP BY naam, voorletters, geboortedatum, b.spelersnr
ORDER BY b.spelersnr;
我不明白你为什么要这样做——当导致重复的列被隐藏时,生成重复的结果。
我猜你不想要这个逻辑,而是:
FROM spelers s LEFT JOIN
boetes b
ON s.spelersnr = b.spelersnr AND b.bedrag < 75
returns 来自 spelers
的所有行与来自 boetes
的匹配值,其中 b.bedrag < 75
.