webForumDet fria alternativet
Logga in / Bli medlem

Ta fram ett intervall A-B

Databaser & SQL

5 svar · 343 visningar · startad av tonyh

Medlem sedan okt. 2002107 inlägg
Trådstart#1

Hej!

Jag vill göra en SQL sats som tar fram alla användate i en vars efternamn börjar på bokstaven "a"?

Kan man inte på något enkelt sätt göra typ:

SELECT * FROM Customers 
WHERE lastname > 'a' and lastname < 'b'
ORDER BY Lastname, firstname

Tack på förhand!

Medlem sedan dec. 20025 483 inlägg
#2
select * from Customers 
where lastname like 'a%' 
order by lastname, firstname;

:)

Medlem sedan okt. 2002107 inlägg
#3

Tack...

...men om man har större intervall typ att man är intreserad av intervallet A-H? Känner någon till något smidigare sätt att få detta intervall än att skriva "AND (Lastname LIKE 'a%' OR Lastname LIKE 'b%' OR Lastname LIKE 'c%' ..."

Tack på förhand!

Medlem sedan feb. 20042 inlägg
#4
SELECT * FROM Customers 
WHERE LEFT(lastname, 1)>='a' AND LEFT(lastname,1)<='c'
ORDER BY Lastname, firstname

Fast jag tror bara det fungerar om du har satt lastname som varchar och inte text. Sedan är jag tveksam till hur snyggt det är... ;)

Medlem sedan okt. 2002107 inlägg
#5

Tack TkJ

Ja det är ett bra förslag (inte världens effektivaste eller snyggaste men dock ett fullt funktionellt förslag).

Tack ska du ha...

...om någon har några andra förslag så är dessa välkomna!!!

Medlem sedan dec. 20003 563 inlägg
#6
SELECT * FROM Customers 
WHERE LEFT(lastname, 1) BETWEEN 'a' AND 'h'
ORDER BY Lastname, firstname

Kanske funkar?

261 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)