按字母顺序获取特定条目之前的所有条目(postgres)
Get all the entries alphabetically preceding a certain entry (postgres)
我正在寻找解决此类问题的方法。
例如,我有一个 table 的客户,我需要让所有按字母顺序(姓名)排在编号为 123 的客户之前的客户。
例如:
ID name
500 Anny
145 Bob
454 Cindy
789 Dan
123 Eve
400 Fred
我会找 Anny、Bob、Cindy 和 Dan。
我正在使用 postgres。
您可以这样做:
select c.*
from clients c
where c.name < (select c2.name from clients c2 where c2.id = 123)
order by c.name;
我会使用自连接:
SELECT c2.*
FROM clients c1
JOIN clients c2 ON c2.name < c1.name
WHERE c1.id = 123
ORDER BY c2.name;
我正在寻找解决此类问题的方法。 例如,我有一个 table 的客户,我需要让所有按字母顺序(姓名)排在编号为 123 的客户之前的客户。 例如:
ID name
500 Anny
145 Bob
454 Cindy
789 Dan
123 Eve
400 Fred
我会找 Anny、Bob、Cindy 和 Dan。 我正在使用 postgres。
您可以这样做:
select c.*
from clients c
where c.name < (select c2.name from clients c2 where c2.id = 123)
order by c.name;
我会使用自连接:
SELECT c2.*
FROM clients c1
JOIN clients c2 ON c2.name < c1.name
WHERE c1.id = 123
ORDER BY c2.name;