2010-08-27 2 views
0

У меня есть набор учеников в средней школе. Консультанты хотят разделить студентов по фамилии. Вот разрыв вниз:Как найти подмножество в поле имени?

Утешитель 1: от А до F Утешитель 2: G к Нг Утешитель 3: Hs до O Утешитель 4: P - Z

Первый легко, я просто а:

where last_name like '[A-F]%' 

но второй советник дает мне горе, потому что если я делаю:

where last_name like '[G-Hr]%' 

... Я получаю все студенты остроумие h фамилии G, H и R. Каков наилучший способ получить то, что я хочу для 2 и 3 советника?

ответ

2

Для консультанта 2, попробуйте:

WHERE last_name LIKE 'G%' OR last_name LIKE 'H[a-r]%' 

Для консультанта 3, попробуйте:

WHERE last_name LIKE 'H[s-z]%' OR last_name LIKE '[I-O]%' 
+0

Это кажется так просто, когда вы положили его, как это;) Должен быть больше кофе! –

+0

Теперь, когда вы упомянули об этом, кофе действительно звучит неплохо. Код должен работать в вашем случае, но давайте притворимся на минуту, что вам пришлось разделить учеников на букву O, ломаясь на Oa-Om и On-Oz. Вышеупомянутый код не подходит для студентов, таких как O'Brien, O'Reilly и т. Д., И вы, вероятно, либо захотите сделать REPLACE, чтобы избавиться от не-альфа-символов, либо добавить их в один из операторов LIKE. – LittleBobbyTables

+0

Хорошая точка. Еще одна вещь, которую следует отметить, это то, что я поставил условие в круглые скобки, потому что у меня есть некоторые другие предложения, и без парнеров он возвращал намного больше строк, чем я хотел. –