Как я могу назвать имена всех членов группы с одинаковой фамилией?Как найти второе значение внутри столбца
Столбец имеет значения, как этот
band_NAME
-------------------
Carla Thomas
Stephen E. Rice
Cynthia P. Tree
Richard Anthony Paul
Ann Frances Smith
Lorace Black
Timothy Adam Paul
Я знаю, мы должны использовать instr
и substr
. Я просто не понимаю, как мы будем определять позицию.
Я знаю, что базовый формат будет как
SELECT band_NAME
FROM TABLE
where substr(band_name, ?, instr() IN
(select substr(band_name, ?, instr()-1)
from table
group by SUBSTR(band_NAME , ?, INSTR()-1)
HAVING COUNT(*) > 1);
Но то, что происходит в вопросительных знаков и внутри instr
?
Поблагодарили бы за помощь!
Как это должно работать? В «Джерри Ли Льюис» первое имя - «Джерри Ли», фамилия «Льюис», поэтому вы разделили имя и фамилию на последнем бланке. В «Gabriel García Márquez» первое имя - «Gabriel», а фамилия - «García Márquez», т. Е. Вы разделились на первом бланке. Существуют также такие названия, как «Хуан Луис Гарсиа Пералес», где он не является ни первым, ни последним пробелом, который отделяет первую и фамилию. Тогда подумайте о китайских именах, где фамилия на первом месте. –
Да, точно, я не понимаю, как разбить его.Некоторые из перечисленных выше имен имеют среднюю начальную, поэтому ее можно разделить по истечении периода, но как и для других с тремя именами, я понятия не имею, как это сделать. Просто нужно выяснить способ найти совпадение на фамилии и отобразить их. – Bob
Я хочу сказать, что вы не можете получить то, что является именем и фамилией только от полного имени. Вы должны иметь больше информации. Может быть, словарь первых и фамилий. (И даже тогда «Пол» может быть как первым, так и фамилией). Может быть, вы в порядке с компромиссом. Но вам решать, какие правила вы будете в порядке. –