Regarding the first question, we need more details and some code...
Regarding the second question:
SELECT * FROM tablename WHERE upper(left(last_name, 1)) = 'A'
This query selects all rows in tablename where the last_name field starts with an A. I added the upper to ensure integrity in case sensitivity, because things may be in there with upper or lower, and this way, will always upper the first letter, and compare it to a cap letter... No muss no fuss.
You could write this to loop through letters, or sub a variable in for the letter, so you can make it flexible. I personally use this type of query in a Corporate Directory I have written.