Pergunta

Eu estou sentado em um banco de dados onde uma coluna contém dados de dois tipos ;)

Exemplo

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

O usuário pensei que seria facilmente pesquisável desta forma...

Agora eu estou tentando corrigir isso, tendo o ID do campo de título e colocá-lo em sua própria coluna.

Como faço para selecionar o título com uma regexp por isso que eu só recebo o número de quatro dígitos no final do título?Esse número pode iniciar com um zero, e o título pode conter mais dígitos do que apenas os 4.

Também não há garantia de que os dígitos são os quatro últimos caracteres no título, às vezes, há alguns espaços seguintes. SUBSTRING não vai funcionar, neste caso

obrigado pela ajuda!

Foi útil?

Solução

Se os quatro dígitos que você precisa para extrair estão exatamente no final da seqüência de caracteres ou são seguidos apenas por espaços, provavelmente seria mais fácil para extrair-los usando o RIGHT() função depois de remover os espaços à direita, usando o RTRIM() função:

SELECT
  RIGHT(RTRIM(YourColumnName), 4) AS SomeCode
FROM
  YourTableName
WHERE
  ...
;
Licenciado em: CC-BY-SA com atribuição
Não afiliado a dba.stackexchange
scroll top