Array
(
)

Formatar Campo String

Renato Tavares
   - 20 jul 2009

Olá Pessoal..!!
Boa Tarde a Todos..!! :D

É o seguinte:

Tenho um campo string no SQL Server e queria formatar a sua saída campo da seguinte maneira.

Select campo_1

Resultado:

07 - Batata Verde - KG: 5.000
001 - Ameixa - KG: 5.000
002 - Morango - KG: 15.000
0021 - Tota - KG: 1.000
8045 - mELANCIA - KG: 16.000

Gostaria que a consulta me retornasse alinhado da seguinte maneira:

07-----Batata Verde-----KG: 5.000
001----Ameixa-----------KG: 5.000
002----Morango----------KG: 15.000
0021---Tota--------------KG: 1.000
8045---Melancia---------KG: 16.000

Como fazer para formatar, é Possível ? :roll:

Desde já muito obrigado..!! :wink:

João Vilar
   - 11 out 2010

SELECT LEFT(CAST(CampoCodigo as varchar(10)) + '-----',10) + LEFT(CampoArtigo + '-----',50) + 'KG:' + CAST(Valor as varchar(30))

    Será que é isto que pretende!!?  

Fernando Vilhena
|
MVP
Pontos: 20
    26 out 2010

Amigo, veja se lhe é util esta solução:
#Código

--Para tornar a solucão mais flexível, coloquei o tamanho do campo em variávelDeclare @TamanhoCampoCodigo  int      , @TamanhoCampoProduto int            set @TamanhoCampoCodigo  = 7  -- 7 caracteresset @TamanhoCampoProduto = 17 -- 17 caracteres

--verifica se a tabela de teste ja existe e apagaif (OBJECT_ID('tempdb..#TabelaPreco') is not null) drop table #TabelaPrecocreate table #TabelaPreco(        Campo_1 varchar(50))        
--insere os dados que você passou numa tabela para simular o ambiente solicitado.insert into #TabelaPreco values ('07 - Batata Verde - KG: 5.000'),								('001 - Ameixa - KG: 5.000'), 								('002 - Morango - KG: 15.000'), 								('0021 - Tota - KG: 1.000'), 								('8045 - mELANCIA - KG: 16.000')								

--select com operaçoes solicitadas.Select substring(campo_1,0, charindex( ' -', campo_1)) + REPLICATE('-',(@TamanhoCampoCodigo - len(substring(campo_1,0, charindex( ' -', campo_1))))) + --1a parte       substring(campo_1,(charindex( '- ', campo_1)+2), (charindex( '- ', campo_1, charindex( '- ', campo_1)+ 1)-2)- (charindex( '- ', campo_1))-1) + REPLICATE('-',@TamanhoCampoProduto-len(substring(campo_1,(charindex( '- ', campo_1)+2), (charindex( '- ', campo_1, charindex( '- ', campo_1)+ 1)-2)- (charindex( '- ', campo_1))-1))) + --texto produto       substring(campo_1,charindex( '- ', campo_1, charindex( '- ', campo_1)+1)+2, LEN(campo_1))from #TabelaPreco