Banco de Dados - SQL Server
Manipulação de Strings com SQL Server 2008 R2
Neste artigo veremos as opções para utilização de funções específicas do SQL Server para manipulação de textos com exemplos, utilizando o banco de dados AdventureWorks.
por Carlos AndrioliHoje meu primeiro artigo sobre tecnologia vou mostrar como manipular textos com o SQL Server 2008 R2, pois até hoje eu não encontrei um site com bons exemplos sobre a manipulação e é algo realmente útil que sempre precisamos no dia a dia, nem sempre lembramos como funcionam corretamente ou como utilizar, por isso vou tentar hoje mostrar isso de forma objetiva para que todos possam entender e utilizar com maior facilidade.
Para quem não conhece o banco de dados AdventureWorks é utilizado como exemplo a muito tempo pela própria Microsoft, pode ser baixado nesse endereço http://msftdbprodsamples.codeplex.com/releases/view/55926. O AdventureWorks está disponível da versão 2000 do Microsoft SQL Server até as versões mais atuais sempre utilizando os padrões e funcionalidades atuais do Microsoft SQL Server, inclusive na versão do 2008 R2 ele já vem com exemplos de DW(Data Warehouse) e do Analysis Service o qual pretendo escrever alguns artigos futuramente para vocês. Resumindo, quem tem interesse em aprender sobre o Microsoft SQL Server com a “mão na massa”, baixe o esse Banco de Dados que ele tem um conteúdo bastante interessante.
Em todos os meus artigos pretendo utilizar o banco de exemplo AdventureWorks com os exemplos, então quem for ler e quiser acompanhar todos eles pode baixar e utilizar ele para ver melhor os exemplos em funcionamento.
Primeiro vamos falar das funções que vamos utilizar hoje durante o artigo depois demonstrarei de forma prática. o SQL Server 2008 R2 permite você trabalhar bastante com essas funções utilizando em querys, procedures ou user-functions.
Funções
Acredito que não vou conseguir especificar todas as funções acima nesse artigo por isso vou dividir esse artigo em duas partes, nesse artigo vou colocar as funções mais utilizadas e em breve publicarei um outro artigo contendo os Outras Funções.
LTRIM - Retorna os dados após limpar os espaço em branco do texto a esquerda.
Exemplo: Na query abaixo vou consultar a tabela Person.Contact incluindo o sobrenome do contato e mais um espaço de três caracteres no inicio.
Após esse retorno vamos pegar o contato do “ Gustavo Achong” e vamos remover os espaços em branco dele utilizando a função LTRIM utilizando a seguinte query.
Após ver o retorno pode reparar que os espaços do lado esquerdo foram removidos pela função LTRIM.
RTRIM - Retorna os dados após limpar os espaço em branco do texto a direita
Exemplo: Na query abaixo vou consultar a tabela Person.Contact incluindo o sobrenome do contato e mais um espaço de três caracteres no final.
Após esse retorno vamos pegar o contato do “Carla Adams ” e vamos remover os espaços em branco dele utilizando a função RTRIM utilizando a seguinte query.
Após ver o retorno pode reparar que os espaços do lado direito foi removido pela função RTRIM.
UPPER- Retorna os dados em caixa alta
Exemplo: Na query abaixo vou consultar a tabela Person.Contact.
SEM UPPER COM UPPER
LOWER - Retorna os dados em caixa baixa
Exemplo: Na query abaixo vou consultar a tabela Person.Contact.
SEM LOWER COM LOWER
LEN - Retorna a quantidade de caracteres do texto
Exemplo: Na query abaixo vou consultar a tabela Person.Contact retornando na coluna Qtde a quantidade de caracteres da coluna FirstName.
LEFT- Retorna o conteúdo do lado esquerdo do texto a partir da posição passada na função.
Exemplo: Na query abaixo vou consultar a tabela Person.Contact selecionando o lado esquerdo a partir do quarto caracter
SEM LEFT COM LEFT
RIGHT - Retorna o conteúdo do lado direito do texto a partir da posição passada na função.
Exemplo: Na query abaixo vou consultar a tabela Person.Contact selecionando o lado direito a partir do quarto caracter.
SEM RIGHT COM RIGHT
REPLACE - Substitui o string pelo o parâmetro desejado.
Exemplo: Na query abaixo vou substituir a palavra roupa por camisa.
SUBSTRING - Retorna uma parte do string passado como parâmetro, utilizando o string, o caracter inicial e o numero de caracteres que devem ser retornados.
Exemplo: Na query abaixo vou retirar a palavra roeu que está na posição 8 do texto e tem 4 caracteres.
Bom pessoal como falei para vocês no começo do post essas são as manipulações de texto mais utilizadas hoje no SQL Server, e espero que essas informações possam ser uteis para você, no próximo post vou publicar as outras funções manipulações de texto do SQL Server, porém por hoje é só pessoal.
Para quem não conhece o banco de dados AdventureWorks é utilizado como exemplo a muito tempo pela própria Microsoft, pode ser baixado nesse endereço http://msftdbprodsamples.codeplex.com/releases/view/55926. O AdventureWorks está disponível da versão 2000 do Microsoft SQL Server até as versões mais atuais sempre utilizando os padrões e funcionalidades atuais do Microsoft SQL Server, inclusive na versão do 2008 R2 ele já vem com exemplos de DW(Data Warehouse) e do Analysis Service o qual pretendo escrever alguns artigos futuramente para vocês. Resumindo, quem tem interesse em aprender sobre o Microsoft SQL Server com a “mão na massa”, baixe o esse Banco de Dados que ele tem um conteúdo bastante interessante.
Em todos os meus artigos pretendo utilizar o banco de exemplo AdventureWorks com os exemplos, então quem for ler e quiser acompanhar todos eles pode baixar e utilizar ele para ver melhor os exemplos em funcionamento.
Primeiro vamos falar das funções que vamos utilizar hoje durante o artigo depois demonstrarei de forma prática. o SQL Server 2008 R2 permite você trabalhar bastante com essas funções utilizando em querys, procedures ou user-functions.
Funções
Acredito que não vou conseguir especificar todas as funções acima nesse artigo por isso vou dividir esse artigo em duas partes, nesse artigo vou colocar as funções mais utilizadas e em breve publicarei um outro artigo contendo os Outras Funções.
LTRIM - Retorna os dados após limpar os espaço em branco do texto a esquerda.
Exemplo: Na query abaixo vou consultar a tabela Person.Contact incluindo o sobrenome do contato e mais um espaço de três caracteres no inicio.
SELECT TOP 10 SPACE(3) + FirstName + SPACE(1) + LastName CompleteName FROM Person.ContactEle irá retornar o seguinte resultado:
Após esse retorno vamos pegar o contato do “ Gustavo Achong” e vamos remover os espaços em branco dele utilizando a função LTRIM utilizando a seguinte query.
SELECT LTRIM(' Gustavo Achong')Ele irá retornar o seguinte resultado:
Após ver o retorno pode reparar que os espaços do lado esquerdo foram removidos pela função LTRIM.
RTRIM - Retorna os dados após limpar os espaço em branco do texto a direita
Exemplo: Na query abaixo vou consultar a tabela Person.Contact incluindo o sobrenome do contato e mais um espaço de três caracteres no final.
SELECT TOP 10 FirstName + SPACE(1) + LastName + SPACE(3) CompleteName FROM Person.ContactEle irá retornar o seguinte resultado:
Após esse retorno vamos pegar o contato do “Carla Adams ” e vamos remover os espaços em branco dele utilizando a função RTRIM utilizando a seguinte query.
SELECT RTRIM('Carla Adams ')Ele irá retornar o seguinte resultado:
Após ver o retorno pode reparar que os espaços do lado direito foi removido pela função RTRIM.
UPPER- Retorna os dados em caixa alta
Exemplo: Na query abaixo vou consultar a tabela Person.Contact.
SELECT TOP 10 UPPER(FirstName) FirstName FROM Person.ContactEle irá retornar o seguinte resultado:
SEM UPPER COM UPPER
LOWER - Retorna os dados em caixa baixa
Exemplo: Na query abaixo vou consultar a tabela Person.Contact.
SELECT TOP 10 LOWER(FirstName) FirstName FROM Person.ContactEle irá retornar o seguinte resultado:
SEM LOWER COM LOWER
LEN - Retorna a quantidade de caracteres do texto
Exemplo: Na query abaixo vou consultar a tabela Person.Contact retornando na coluna Qtde a quantidade de caracteres da coluna FirstName.
SELECT TOP 10 LEN(FirstName) Qtde, FirstName FROM Person.ContactEle irá retornar o seguinte resultado:
LEFT- Retorna o conteúdo do lado esquerdo do texto a partir da posição passada na função.
Exemplo: Na query abaixo vou consultar a tabela Person.Contact selecionando o lado esquerdo a partir do quarto caracter
SELECT TOP 10 LEFT(FirstName, 4) FirstNameLeft FROM Person.ContactEle irá retornar o seguinte resultado:
SEM LEFT COM LEFT
RIGHT - Retorna o conteúdo do lado direito do texto a partir da posição passada na função.
Exemplo: Na query abaixo vou consultar a tabela Person.Contact selecionando o lado direito a partir do quarto caracter.
SELECT TOP 10 RIGHT(FirstName, 4) FirstNameRight FROM Person.ContactEle irá retornar o seguinte resultado:
SEM RIGHT COM RIGHT
REPLACE - Substitui o string pelo o parâmetro desejado.
Exemplo: Na query abaixo vou substituir a palavra roupa por camisa.
SELECT REPLACE('O rato roeu a roupa do rei de roma', 'roupa', 'camisa')Ele irá retornar o seguinte resultado:
SUBSTRING - Retorna uma parte do string passado como parâmetro, utilizando o string, o caracter inicial e o numero de caracteres que devem ser retornados.
Exemplo: Na query abaixo vou retirar a palavra roeu que está na posição 8 do texto e tem 4 caracteres.
SELECT SUBSTRING('O rato roeu a roupa do rei de roma', 8, 4)Ele irá retornar o seguinte resultado:
Bom pessoal como falei para vocês no começo do post essas são as manipulações de texto mais utilizadas hoje no SQL Server, e espero que essas informações possam ser uteis para você, no próximo post vou publicar as outras funções manipulações de texto do SQL Server, porém por hoje é só pessoal.
- Representando dados em XML no SQL ServerSQL Server
- Diferenças entre SEQUENCES x IDENTITY no Microsoft SQL Server 2012SQL
- Utilizando FILETABLE no SQL Server 2012SQL Server
- NHibernate com o Delphi Prism: Acessando um Banco de Dados SQL ServerVisual Studio
- Novidades no SQL Server Codinome DenaliSQL Server