Domanda

Ho il seguente problema.

Il mio tavolo, diciamo TAB1, ha nome colonna come segue "Cognome, Nome". Voglio fare in modo che la colonna diventa "Nome Cognome".

Tutte le idee su come questo deve essere fatto? Si noti che non v'è alcuna virgola presente, ma credo che può essere facilmente rimosso una volta che ho a capire come capovolgere in realtà il primo e l'ultimo nome.

Qualsiasi aiuto sarebbe apprezzato.

Grazie.

È stato utile?

Soluzione

sostituire @NAME con il valore reale:

SELECT TRIM(SUBSTR(@NAME, LOCATE(",", @NAME) + 1)) AS prename, TRIM(SUBSTR(@NAME, 1, LOCATE(",", @NAME) - 1)) AS surename

In questo modo estrarre la parte prename e cognome, ora è possibile inserire / modificare i dati come si desidera.

Altri suggerimenti

  • Sarebbe meglio dividere la colonna nome in due campi, FirstName e Cognome , in modo da poterli formattare in qualsiasi modo si desidera, ed ancora ordinamento cognome.
  • Usa substring e substring_index per trovare di virgola e diviso su di loro. Vedere il manuale .

Non è una risposta alla tua domanda, ma non vorrei farlo in qualsiasi circostanza. Si perderà ogni possibilità di raccontare in modo affidabile a parte il cognome e nome. Prendere in considerazione i seguenti nomi:

Bridget St John
Boutros Boutros Ghali
Karl-Theodor Maria Nikolaus Freiherr von und zu Guttenberg

Mi consiglia di mantenere separata "cognome" e le colonne "Nome". È possibile concatenare loro come vi piace quando fate la vostra uscita.

UPDATE table SET name2=CONCAT (TRIM(SUBSTR(name, LOCATE(",", name) + 1)), ' ', TRIM(SUBSTR(name, 1, LOCATE(",", name) - 1)))
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top