SELECT to_char(now(), 'DD/MM/YYYY às HH24:MI:SS')
Irá imprimir, por exemplo: “09/08/2017 às 14:32”
SELECT to_char(now(), 'DD/MM/YYYY às HH24:MI:SS')
Irá imprimir, por exemplo: “09/08/2017 às 14:32”
Por exemplo: Digamos que você deseja saber quais são as últimas 3 letras de um nome:
SUBSTRING('Paulo' FROM '.{3}$')
Retornará ‘ulo’
Este problema na maioria das vezes é causado por uma consulta incorreta, desta forma ela não está podendo retornar dados e montar o recordset.
Imprima a consulta que você está tentando realizar utilizando o comando echo (no PHP) e execute-a no banco de dados através de um aplicativo como o phpMyAdmin, HeidiSQL, etc.
No meu caso, o erro da consulta foi a falta de uma virgula entre os campos que eu estava tentando consultar (d.Code e d.Title):
SELECT d.Code d.Title FROM document d INNER JOIN project p ON (d.ProjectID = p.ID) WHERE p.Code = 'cf23df2207d99a74fbe169e3eba035e633b65d94'
É possível executar a consulta abaixo em um cliente como o Oracle SQL Developer, SQL Plus, etc:
SELECT * FROM v$version;
Resultado:
Este é um exemplo simples, imagine que você deseja mostrar todos as frutas, mesmo as que tem a quantidade com o valor 0. Em algumas ocasiões não é possível pois os filtros aplicados no Where terminam eliminando todos os registros daquele tipo de classe. No exemplo abaixo exibiria Morango, mas não seria exibida Banana.
SELECT
id
Count(*) quantidade
FROM
frutas
WHERE
frutas.cor = ‘Vermelho’
GROUP BY ID
ORDER BY ID
A solução para isso é listar todas os registros do dicionário de frutas e fazer um left join com a consulta.
SELECT
dicionarioFrutas.id
dicionarioFrutas.nome
consultaFrutas.quantidade
FROM
(SELECT frutas.id, frutas.nome FROM frutas) dicionarioFrutas,
(
SELECT
id
Count(*) quantidade
FROM
frutas
WHERE
frutas.cor = ‘Vermelho’
GROUP BY ID
ORDER BY ID
) consulta
WHERE dicionarioFrutas.ID = consultaFrutas.ID (+) — LEFT JOIN do PL/SQL
ORDER BY dicionarioFrutas.ID
Assim teriamos como resultado:
Morango: 1
Banana: Null
Conseguir obter um registro aleatório pode até não ser um dos recursos mais importantes de um banco de dados, mas não deixa de ser muito útil, principalmente se você precisa:
Porém, apesar da grande utilidade, este é um recurso muito fácil de ser utilizado. Para isso basta utilizar o comando Rand() na cláusula ORDER BY:
SELECT artigo_id, titulo, descricao FROM artigo ORDER BY RAND() LIMIT 4
O código acima retornará a informação artigo_id, titulo, descricao (SELECT artigo_id, titulo, descricao) de quatro artigos (LIMIT 4) que estão contidos na tabela artigo (FROM artigo) selecionados de forma aleatória (ORDER BY RAND())
Estava precisando criar um outro banco de dados para trabalhar com uma nova versão de um sistema, e me deparei com uma dúvida: como faço para copiar a tabela de um banco de dados para outro banco de dados em um mesmo servidor?
A resposta é simples! Digamos que você tenha dois bancos “BancoAntigo” e “BancoNovo”, e você deseja copiar a tabela “Teste” do “BancoAntigo” para o “BancNovo”:
DROP TABLE IF EXISTS BancoNovo.Teste; CREATE TABLE BancoNovo.Teste SELECT * FROM BancoAntigo.Teste;
SELECT so.name FROM sysobjects so WHERE so.xtype = 'U' AND so.name <> 'dtproperties' GROUP BY so.name
A cláusula EXIST, segundo o site MSDN da microsoft, especifica uma subconsulta a ser testada quanto à existência de linhas. IN segundo o site MSDN da Microsoft determina se um valor especificado corresponde a qualquer valor em uma subconsulta ou uma lista.
Por exemplo: Imagine em um sistema previdenciário, um relatório que deseja trazer todos os credenciados que tem dependentes.
SELECT nome, matricula FROM credenciado WHERE EXIST ( SELECT ID FROM dependente WHERE dependente.responsavelID = credenciado.ID )
A consulta retornará apenas credenciados que tenham pelo menos um dependente. Como a claúsula EXIST deseja saber se existe pelo menos um, ele não realizará uma busca em toda a base de dados (Full Scan). No momento em que a subconsulta encontrar o primeiro resultado será finalizada, poupando recursos do servidor.
A cláusula IN tem um funcionamento diferente, utiliza-se quando o objetivo é verificar se a consulta retorna algum linha que esteja compatível com valores especificados.
Por exemplo: No mesmo sistema previdenciario, um relatório que se deseja trazer todos os credenciados que já morreram ou são inválidos.
SELECT nome, matricula FROM credenciado WHERE status IN (FALECIDO, INVALIDOS)
Os valores especificados podem ser através de uma subconsulta.