У меня есть поле name
со следующими строками:переформатирование таблицы данных SQL
`name`
------
John Smith
George Washington
Ash Ketchum
Bill O'Reilly
Я хотел бы переформатировать строки на выходе:
`name`
------
SMITH, JOHN
WASHINGTON, GEORGE
KETCHUM, ASH
O'REILLY BILL
Я знаю, что я могу использовать upper(
x.name
)
для но как я могу переформатировать имена?
Вы не можете ... А как насчет ROBERTO DA SILVA? Нераспределенные фамилии собираются разрушить все, что вы пытаетесь. Ваш единственный вариант, если вы хотите быть точным, - создать отдельный столбец для каждого элемента данных. Там, где у человека было только два имени, как ограниченное пространством, вы помещаете в эти столбцы. Остальное вам нужно сделать вручную ... – Ben
Что делать, если у меня нет этих привилегий и вы можете работать только с данными. Не может ли быть какое-то выражение, использующее 'CASE WHEN'? –
Да, вы можете приблизиться. Я хочу сказать, что данные хранятся некорректно для того, что вы хотите сделать. Поэтому вы не можете быть на 100% точным. Ваш лучший вариант - исправить вашу модель данных, для чего потребуется некоторая ручная работа или некоторые очень интеллектуальные парсеры. Любой полученный вами ответ по определению является неточным; хотя он может иметь дело с большинством случаев. – Ben