Contando caracteres de um campo no SQL
Bom dia !
Vamos falar hoje sobre como contabilizar a quantidade de vezes que um determinado caracter é apresentado em uma linha de registro SQL.
Não sei se podemos dizer Infelizmente mas o SQL não tem uma função nativa para fazer esse tipo de coisa, afinal também não é necessário, uma vez que temos as peças podemos montar o quebra cabeça.
123 Testando…
DECLARE @TextoLinha VARCHAR(500) , @Caracter VARCHAR(1) SET @Caracter ='#' SET @TextoLinha ='Cliente_id#Nome_cliente#nascimento#Cpf#Endereco' SELECT LEN(@TextoLinha) - LEN(REPLACE(@TextoLinha, @Caracter, ''))
Na pratica em uma tabela:
ALTER TABLE NM_TABELA ADD QTDCARACTER VARCHAR(5) UPDATE NM_TABELA SET QTDCARACTER = LEN(NM_CAMPO_ONDE_VOCE_QUER_CONTABILIZAR) - LEN(REPLACE(NM_CAMPO_ONDE_VOCE_QUER_CONTABILIZAR,'#','') ) --ONDE A # É O CARACTER QUE SE DESEJA PESQUISAR
Valeu e até a próxima !
MVA – Microsoft Virtual Academy.
Fiz um teste na academia da microsoft, achei bem interesse .. tem muito conteúdo legal pra quem esta iniciando na área, em contrapartida pra quem já atua no mercado existem materiais bem atrativos, porém esse conteúdo esta mais restrito, com o material somente em inglês !
www.microsoftvirtualacademy.com
Conectando com WebService pelo SQL
Galera infelizmente estou sem tempo para elaborar um post, porém vou deixar uma dica legal aqui, que precisei fazer para usar no meu projeto atual, espero poder ajudar e melhorar no proximo post..
Conectando com WS pelo SQL
/*@ThiagoThamiel 01/03/2012 */ DECLARE @ObjRemoto AS INT; DECLARE @sRetorno AS VARCHAR(8000); DECLARE @sMSGRT as varchar (150) EXEC sp_OACreate 'MSXML2.XMLHTTP', @ObjRemoto OUT; EXEC sp_OAMethod @ObjRemoto, 'open', NULL, 'get', 'http://www.endereco.com.br/ws/WSteste.asmx?WSDL', 'false' EXEC sp_OAMethod @ObjRemoto, 'send' EXEC sp_OAMethod @ObjRemoto, 'responseText', @sRetorno OUTPUT IF RTRIM(LTRIM(@sRetorno)) = '' BEGIN SET @sMSGRT = 'Servidor fora do ar' END ELSE IF RTRIM(LTRIM(@sRetorno)) LIKE '%The resource cannot be found.%' BEGIN SET @sMSGRT = 'Aplicação WebService não localizada' END ELSE BEGIN --SET @sMSGRT = 'Sevidor WebService OK' SET @sMSGRT = '' END Exec sp_OADestroy @ObjRemoto
Treinamento de Sobrevivência SQL para o mercado de trabalho !
Pré Conteúdo do curso – Turma de Fevereiro !
Modulo 1
- Introdução
- Instalando o SQL Server 2005
- Instalando o SQL Server Management Studio e acessando o servidor SQL
- Criando um Banco de Dados
- Criando Backup do Banco de Dados
- Restaurando um Banco de Dados
Modulo 2
- Introdução a Tabelas / Campos e Relacionamentos
- Criando tabelas/tabelas temporárias
- O Conceito de Chave Primária
- Tipos de Dados
- Restrições – Default / Not Null
- Restrição Foreign Key/Chave estrangeira
- Relacionamentos entre Tabelas (1/2)
- Adicionando colunas em tabelas já criadas
- Arquitetura de banco Relacionado
Modulo 3
- Introdução a Translact-SQL
- Inserir dados em Tabelas (1/2) – Insert
- Instrução SELECT- Operadores Lógicos (or, and , in, not in e like)
- Utlizando Operadores Top, Sum, Average, Count, Having etc
- Utilizando algumas funçõnes (Getdate,Substring, Left, Rigth)
- Relacionamentos entre Tabelas (2/2) (Inner Join, Left Join e Rigth Join)
- Subqueries
Modulo 4
- Inserir dados em Tabelas (2/2) – Insert com Select
- Instrução Delete / Truncate / Drop
- Usando Begin Trans / Rollback / Commit
- Criando Procedures
- Criando Stored Procedures com parâmetros de entrada
- Usando a estrutura If / begin / End
- DTS – Data Transformation Service (Importando e Exportando Banco de Dados)
Conteúdo extra:
- Declarando Variáveis no SQL
- Executando SQL concatenado por String
- Função Print
- Usando Sp_Help / Sp_Helptext / Sysobjects
- Entender a função Patindex , Nolock
e muito mais conteúdo !
Brincando de SQL – Usando o OPENDATASOURCE
O que é o OPENDATASOURCE e para que serve?
R. É uma função disponível no SQL utilizada para acessar dados remotos. – Ajudei ?
Legal, não te ajudei ? então vamos lá.
Com a função opendatasource você pode executar um comando SQL em uma planilha excel, arquivo texto, Access e assim vai. Ual !
imagina que sinistro, você fazer um relacionamento (inner join) em uma tabela SQL com um arquivo Excel sem precisar importar, é muito loco rss!
[Exemplo 1] – Usando a função OPENDATASOURCE para acessar um servidor SQL remoto !
SELECT
*
FROM
OPENROWSET(‘SQLOLEDB’,‘SERVIDOR SQL’;
‘USUARIO SQL ‘;
‘SENHA SQL ‘,
‘SELECT * FROM BANCO..TABELA’)
[Exemplo 2] – Usando a função OPENDATASOURCE para acessar uma planilha Excel !
SELECT
*
FROM
OPENDATASOURCE(‘MICROSOFT.ACE.OLEDB.12.0′,
‘DATA SOURCE=\\CAMINHO\PLANILHA.XLS
;EXTENDED PROPERTIES=EXCEL 12.0
’)…[PLAN1$]
Dicas: Utilizar sempre um compartilhamento de rede !, colocar entre colchetes o nome da aba/sheet seguido de $ (dólar)
[Problemas] – Usando a função OPENDATASOURCE para acessar arquivo excel com SQL 64Bits
Você só vai conseguir utilizar o driver ace.oledb e em alguns casos também é necessário instalar no servidor um pacote com o driver
Link: http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=13255
instalando o componente acima você terá suporte para as conexões com as seguintes extensões (*.xls, *.xlsx, and *.xlsb, *.mdb and *.accdb)
Valeu e ate a próxima !
Rapidinha: SQL – Usando PIVOT
Boa tarde moçada,
para quem precisa verticalizar no sql você pode usar o PIVOT ou UNPIVOT
vamos abordar nesse post rápido o PIVOT que inverte os registros em colunas.
Mão na massa com o exemplo abaixo:
--Criando Tabela Temporaria para exemplo Create table #ExemploPivot (codigo int, nome varchar(50)) --Inserindo registros insert into #ExemploPivot (codigo, nome) Values (1,'Thiago Thamiel') insert into #ExemploPivot (codigo, nome) Values (2,'Alessandra Regina') insert into #ExemploPivot (codigo, nome) Values (1,'Thiago Thamiel') insert into #ExemploPivot (codigo, nome) Values (2,'José Antonio') insert into #ExemploPivot (codigo, nome) Values (3,'José Antonio') insert into #ExemploPivot (codigo, nome) Values (4,'Alessandra Regina') --Usando Pivot Select [Thiago Thamiel],[Alessandra Regina],[José Antonio] from #ExemploPivot Pivot (count(codigo) for nome in ([Thiago Thamiel] ,[Alessandra Regina] ,[José Antonio])) pvt
Galera só lembrando eu não detalho muito as funções por que podem ser encontradas no MSDN e para o aprendizado é necessário a consulta e estudos.











