Arquivo da tag: query

SQL-Server – como localizar/procurar coluna pelo nome em todas as tabelas do banco

SELECT
	T.name AS Tabela,
	C.name AS Coluna
FROM
	sys.sysobjects    AS T (NOLOCK)
INNER JOIN sys.all_columns AS C (NOLOCK) ON T.id = C.object_id AND T.XTYPE = 'U'
WHERE
	C.NAME LIKE '%NomeDoCampo%'
ORDER BY
	T.name ASC

Créditos:  http://social.msdn.microsoft.com/Forums/pt-BR/520/thread/4426106f-a22c-456f-b463-67620bfda1ef/

35 Comentários

Arquivado em SQL

Exemplo de insert massivo

No exemplo o insert massivo é para popular a tabela_2 com dados da tabela_1, note que para funcionar as colunas do select devem coincidir com as colunas do insert.

INSERT INTO TABELA_2
 	   (CHAVE_TABELA_1, VALOR_TABELA_2, NOME_TABELA_2, DT_TABELA_2, DESCRICAO_TABELA_2)
(SELECT CHAVE_TABELA_1, VALOR_TABELA_1, NOME_TABELA_1, DT_TABELA_1, DESCRICAO_TABELA_1
		FROM TABELA_1
	WHERE
		 CHAVE_TABELA_1 = @CHAVE_TABELA_1)

Deixe um comentário

Arquivado em Banco de Dados, SQL

Exemplo de uso do replace no PostgreSQL

Um dia desses precisei fazer substituição de alguns caracteres dentro de alguns registros no banco, dai então usei a função replace do PostgreSQL para atender a tarefa.
No select abaixo troco toda a ocorrência de contra-barra ‘/’ por uma string vazia:

   select
     replace(coluna,'/','') as valorAposReplace,
     coluna as valorOriginal
   from tabela

valew!!!

3 Comentários

Arquivado em Banco de Dados, SQL

Exemplo de como limitar o número de linhas retornas no MySQL, SQL-Server e Oracle

Numa consulta ao banco de dados posso retornar milhares de linhas, porém gostaria apenas trazer os primeiros 20 registros.  Segue os exemplos de como limitar o números de linhas no bancos MySQL, SQL-Server e Oracle:

--MySQL
select coluna from tabela limit 20;
--SQL-Server
</strong>select top 20 coluna from tabela;
--Oracle
select coluna from tabela where ROWNUM <=20;

Obs. O Oracle não tem as funções “TOP” nem LIMIT. Para fazer o equivalente no Oracle usamos a função ROWNUM que conta cada registro retornado començando com 1.

Referências:
How can I limit the number of rows in Oracle. http://www.delphifaq.com/faq/databases/oracle/f594.shtml acessado em 29/12/2010.

Equivalent of SQL “TOP X” in Oracle. http://www.dougboude.com/blog/1/2006/06/Equivalent-of-SQL-TOP-X-in-Oracle.cfm acessado em 29/12/2010.

1 comentário

Arquivado em Banco de Dados, SQL

Preencher zeros à esquerda com função Oracle e Postgres

No Oracle assim no como no Postgres a função LPAD preenche caracteres no lado esquerdo de uma string.

Sintaxe:

LPAD (str, lenght, pad)

Legenda:

str: é a seqüência de caracteres preencher o lado esquerdo.

Length: posições (qtde) à preencher.

pad: é o valor que irá completar as posições.

Exemplos de uso:

lpad('tech', 7); retorna '   tech'
lpad('tech', 2); retorna 'te'
lpad('tech', 8, '0'); retorna '0000tech'
lpad('tech on the net', 16, 'z'); retorna 'ztech on the net'
lpad('tech on the net', 15, 'z'); retorna 'tech on the net'

Para preencher zeros a esquerda:

select LPAD(string,3,0) from tabela –- dada a string “A” com tamanho 3, e pad “0”, irá resultar em “00A”
--update geral na coluna para completar com zero a esquerda o valores com tamanho inferior a 6 digitos
update aluno set matricula = lpad(matricula, 6, '0'); --valor 123 vai para 000123, valor 2 vai para 000003, etc...

Veja a função RPAD caso queira fazer o prenchimento à direita.

Fonte:
http://www.techonthenet.com/oracle/functions/lpad.php
http://www.postgresql.org/docs/8.2/static/functions-string.html

4 Comentários

Arquivado em SQL