Domanda

Sono seduto su un database in cui una colonna contiene due tipi di dati;)

Esempio

"1";"When the Wind Blows   0275";"James Patterson "
"4";"The Reluctant Fundamentalist      1026";"Mohsin Hamid";
.

L'utente ha pensato che sarebbe facilmente ricercabile in questo modo ...

Ora sto cercando di risolvere questo problema, prendendo l'ID dal campo del titolo e metterlo nella sua colonna.

Come posso selezionare il titolo con un regexp in modo da ottenere solo il numero di quattro cifre alla fine del titolo?Quel numero può iniziare con uno zero e il titolo potrebbe contenere più cifre rispetto a quelle 4.

Non c'è anche alcuna garanzia che le cifre siano gli ultimi quattro caratteri nel titolo, a volte ci sono alcuni spazi seguiti.SUBSTRING non funzionerà in questo caso

Grazie per l'aiuto!

È stato utile?

Soluzione

Se le quattro cifre che devi estrarre sono esattamente all'estremità della stringa o sono seguite solo da spazi, sarebbe probabilmente più facile estrarre loro usando RIGHT() Funzione dopo aver rimosso il trailingSpazi usando RTRIM() Funzione:

SELECT
  RIGHT(RTRIM(YourColumnName), 4) AS SomeCode
FROM
  YourTableName
WHERE
  ...
;
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a dba.stackexchange
scroll top