Bör man inte kunna utesluta dubletter med denna sql:en
SQL ="select distinct Email from mail order by Email"
fälttypen är varchar och jag får ut dubletter trots användandet av distinct.
11 svar · 329 visningar · startad av LAMP
Bör man inte kunna utesluta dubletter med denna sql:en
SQL ="select distinct Email from mail order by Email"
fälttypen är varchar och jag får ut dubletter trots användandet av distinct.
Jodå, det skall fungera så. Ser din sql-sats ut exakt så som du har skrivit?
Om det inte råkar vara så att vissa e-postadresser har exempelvis mellanslag före eller efter sig i fältet, då kan det ju se ut som att samma adress kommer fler gånger.
mvh,
Avslutande blanka är inte signifikanta vid distinct.
Däremot så är inledande blanka signifikanta, men dessa borde vara lättare att se.
smart! men då borde jag få ut rätt med denna?
SQL ="select distinct trim(Email) from mail order by Email"
Vad använder du för dbms? Med Access borde det där fungera, men i T-SQL (SQL Server) finns inte Trim, utan du får använda LTRIM() för att slänga bort inledande blanka.
Möjligen får du med Access ha Order by 1 istället, och i SQL-Server ge ett alias på fältet, som du sedan sorterar på.
Mvh,
Tack, LTrim() löste problemet. Är inte första fältet i sql:en nr 0 ?
Jäpp, det är det.
Nej, det är det inte, det är 1. Av någon anledning.
Det är dock ganska Access-specifikt.
Däremot, när du använder recordset på exempelvis en ASP-sida så är är första indexet 0.
Mvh,
Det är inte Access-specifikt att man kan använda
order by 1
Det stöds av de flesta dbms, även om det är borttaget ur SQL 99. Det som dock inte finns i Access är att man kan använda aliasnamn i order by.
select distinct email trim(email) as e from t order by e
Det finns i de flesta dbms och det är så det är tänkt enligt SQL 99