AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / 问题

Perguntas[where](dba)

Martin Hope
Burner918
Asked: 2023-09-01 03:38:41 +0800 CST

Como usar uma cláusula WHERE com um GROUP BY

  • 5

Estou aprendendo SQL, então peço desculpas se esta for uma pergunta muito básica. Não consigo descobrir como usar uma cláusula WHERE depois de GROUP BY um campo.

insira a descrição da imagem aqui

Por exemplo, como eu filtraria os resultados usando uma cláusula WHERE para ver apenas os países onde a contagem de pedidos é maior que 100?

Obrigado

where
  • 2 respostas
  • 24 Views
Martin Hope
HeyJude
Asked: 2022-01-20 00:57:18 +0800 CST

Filtre por campo e, se zero resultados, filtre por outro campo

  • 0

Como uma WHEREcláusula deve ser construída, de modo que:

  • Ele filtra por um determinado campo
  • Se houver zero resultados para filtrar pelo campo mencionado, ele filtra por outro campo?

Por exemplo, se tivermos este esquema:

CREATE TABLE Items
(
  [Id] INT PRIMARY KEY,
  [FirstDate] DATETIME,
  [SecondDate] DATETIME
);

... com estes registros:

INSERT INTO Items ([Id], [FirstDate], [SecondDate])
VALUES 
(1, '2021-1-1', '2022-1-1'),
(2, '2022-1-1', '2023-1-1'), 
(3, '2022-1-1', '2024-1-1'), 
(4, '2024-1-1', '2025-1-1'),
(5, '2024-1-1', '2026-6-1')

... então eu quero filtrar por FirstDatee SecondDate, de modo que:

  • Se especificarmos FirstDatee SecondDatefiltrar por 2022-1-1, os registros 2 e 3 serão retornados ( mas não 1! ).
  • Se especificarmos FirstDatee SecondDatefiltrar por 2024-1-1, os registros 4 e 5 serão retornados ( mas não 3! ).
  • Se especificarmos FirstDatee SecondDatefiltrar por 2025-1-1, o registro 4 será retornado.
sql-server where
  • 2 respostas
  • 69 Views
Martin Hope
66Gramms
Asked: 2021-02-03 04:15:12 +0800 CST

Campo de atualização com o campo varchar mais longo

  • 0

Eu preciso atualizar um dos campos varchar em uma tabela, mas apenas o registro que é o varchar mais longo (tem mais dados nele). Eu poderia facilmente encontrá-lo com esta consulta:

SELECT TOP(1) options
FROM ForrasReportsRicsiTeszt
ORDER BY LEN(options) DESC

Agora preciso atualizá-lo, mas sou bastante inexperiente com sql. Este é um servidor sql de 2005 ms.

minha consulta para atualização:

  UPDATE ForrasReportsRicsiTeszt
  SET options = REPLICATE(options, 4)
  WHERE TOP(1) ORDER BY LEN(options) DESC

Isso me dá um erro no TOP(1) que era bastante esperado. Eu simplesmente não sei o jeito certo de escrever essa consulta, como eu poderia atualizar apenas o campo varchar mais longo? O que eu consegui com minha consulta de seleção. Infelizmente, não há chave primária que eu possa usar no meu WHERE.

Qualquer ajuda seria muito apreciada!

query where
  • 2 respostas
  • 27 Views
Martin Hope
arthur.sw
Asked: 2021-01-15 06:44:42 +0800 CST

Coluna desconhecida na 'cláusula where' ao usar um alias para uma subconsulta no MySQL

  • 1

Esta simples consulta:

select exam.id as exam_id,
(select count(*) from dataset where dataset.id = exam.id) as n_dataset
from exam
where n_dataset = 0

retorna o seguinte erro:

ERROR 1054 (42S22) at line 1: Unknown column 'n_dataset' in 'where clause'

Por quê?

mysql where
  • 2 respostas
  • 5133 Views
Martin Hope
TheLovelySausage
Asked: 2020-11-12 08:01:00 +0800 CST

Cláusula onde os resultados aparecem após a ocorrência

  • 2

Gostaria de saber se é possível encontrar registros que só aparecem após a primeira ocorrência de uma cláusula where. Atualmente estou usando o PostgreSQL para este exemplo, mas seria preferível algo não específico do PostgreSQL.

Se eu tivesse uma tabela como esta para um exemplo

drop table if exists dummy;
create table dummy (
   col_a   varchar(10),
   col_b   varchar(10),
   col_c   varchar(10),
   test    integer
);

insert into dummy values
('A', 'B', 'C', 1),
('B', 'C', 'A', 2),
('C', 'A', 'B', 3),
('D', 'E', 'F', 4);

Se eu executar a consulta abaixo posso obter os dados em uma nova ordem

select * from dummy
order by col_b;

retornando

C | A | B | 3
A | B | C | 1
B | C | A | 2
D | E | F | 4

É possível fazer algo para que eu possa retornar apenas as linhas que ocorrem após uma determinada cláusula where, algo como

select * from dummy
/* where row appears after results 'A', 'B', 'C', 1 */
order by col_b;

Para obter

B | C | A | 2
D | E | F | 4

ATUALIZAR

O motivo pelo qual não estou usando where col_b > ?é porque não atende a valores duplicados

Funcionaria até que eu precisasse corresponder em uma coluna adicional como esta

select * from dummy
where col_b > 'B'
and col_c > 'C'
order by col_b;

Nesse caso, ele retornará a última linha porque ambos os valores estão acima do limite, mas não está cortando após a primeira ocorrência da linha especificada.

Estou tentando ter uma cláusula where que possa identificar a linha específica sendo linha

A | B | C | 1

Nesse caso

where condition
  • 2 respostas
  • 57 Views
Martin Hope
rahim.nagori
Asked: 2020-05-09 04:36:50 +0800 CST

Como a adição de LIMIT funciona com as condições Where no mysql?

  • 0

No meu banco de dados, há apenas um registro que satisfaz a condição iv_title = 'ball skills' . Agora estou executando a seguinte consulta:

SELECT
    *
FROM
    `imageAndVideo`
WHERE
    `iv_title` = 'ball skills' AND `iv_file_type` = 2
ORDER BY
    `iv_create`
DESC
LIMIT 1, 6

Esta consulta acima não gera nenhum registro, não sei por quê? Alguém por favor pode me explicar isso?
Se eu executar a consulta abaixo (removendo LIMIT), recebo o limite desejado.

SELECT
    *
FROM
    `imageAndVideo`
WHERE
    `iv_title` = 'ball skills' AND `iv_file_type` = 2
ORDER BY
    `iv_create`
DESC
mysql where
  • 1 respostas
  • 416 Views
Martin Hope
Jana
Asked: 2019-11-14 23:53:31 +0800 CST

Como evitar toneladas de lower (coluna) na cláusula WHERE para várias comparações LIKE?

  • 0

Eu tenho que filtrar dados em uma coluna de string e, portanto, preciso comparar a coluna usando NOT LIKEum monte de strings.

Estou usando o SQL Server e meu código está assim:

SELECT history.date,
       history.new_value,
       res.resource_name
FROM   item_history history, 
       owned_resource   res
WHERE  (history.attr_name = 'resource_contact' OR history.attr_name = 'Kontakt-UUID')
       AND res.inactive = 0 
       AND history.com_par_id = res.own_resource_uuid
       AND lower(history.new_value) NOT LIKE '%tp für%'
       AND lower(history.new_value) NOT LIKE '%rücklieferung%'
       AND lower(history.new_value) NOT LIKE '%rückläufer%'
       AND lower(history.new_value) NOT LIKE '%stoerreserve%'
       AND lower(history.new_value) NOT LIKE '%zentrallager%'
       AND lower(history.new_value) NOT LIKE '%bhs-pool%'
       AND lower(history.new_value) NOT LIKE '%lager halle%'        
       AND lower(history.new_value) NOT LIKE '%lager logistik%'
       AND lower(history.new_value) NOT LIKE 'reserve %'
       AND lower(history.new_value) NOT LIKE '%igeko%bhs%'
       AND lower(history.new_value) NOT LIKE '%service%ecg%'
       AND lower(history.new_value) NOT LIKE '%multifunktionsdrucker%'
       AND lower(history.new_value) NOT LIKE 'nn%gisa%raum%'
       AND lower(history.new_value) NOT LIKE '%citrix%admins%'
       AND lower(history.new_value) NOT LIKE '%personalwesen%'
       AND lower(history.new_value) NOT LIKE '%etagendrucker%'
       AND lower(history.new_value) NOT LIKE '%schulungsraum%'
       AND lower(history.new_value) NOT LIKE '%team%raum%'
       AND lower(history.new_value) NOT LIKE  '%beratungsraum%'
       AND lower(history.new_value) != 'reserve'
)

Eu acho que o desempenho não é o melhor chamando "lower()" repetidamente. Além disso, como programador, minhas unhas estão enrolando vendo tanto código redundante. Infelizmente não encontrei uma maneira legal de usar uma variável ou algo assim. (Quero acrescentar que não posso simplesmente adicionar uma nova coluna computada, o que seria uma boa maneira aqui, estou autorizado apenas a ler dados.)

Qualquer conselho para tornar o código mais inteligente seria apreciável?

sql-server where
  • 3 respostas
  • 83 Views
Martin Hope
Rahul Hendawe
Asked: 2019-10-15 04:31:01 +0800 CST

Como usar colunas separadas por vírgula na instrução CASE WHEN?

  • 0

Estou tentando adicionar a CASE WHENinstrução abaixo na WHEREcláusula SQL, mas o SQL Server não me permite fazê-lo. Todas as colunas usadas são iguais Data Types, mas ainda estão me dando erro, alguém pode verificar e aconselhar por que não está funcionando?

WHERE supplierAccountDetail.SupplierMasterID IN (
        CASE 
            WHEN @SupplierMasterID IS NOT NULL
                THEN @SupplierMasterID
            ELSE (sales.ParentSupplierMasterID
                ,sales.DivisionSupplierMasterID) //Error - Syntax Error
            END
        )
sql-server where
  • 1 respostas
  • 2461 Views
Martin Hope
alireza azadi
Asked: 2019-08-28 21:48:39 +0800 CST

Where cláusula em select não funciona com Desigualdade de guid

  • 0

Eu quero consultar nosso CRM Db. Eu tenho um backup CRM Dbe o existente. Há um custom entity,em ambos eu criei. Alguns dos meus registros de entidade personalizados foram excluídos do banco de dados existente. Quero comparar quais registros foram excluídos. O número de registros existentes é 17 e o backup contém 19 registros. A entidade personalizada é denominada new_services. O banco de dados de backup é nomeado test2e o existente é MSCRMO nome da tabela é new_servicese Quando eu consulto isso são iguais:

select * from test2.dbo.new_services as t1,
 MSCRM.dbo.new_services as t2
where t1.new_service_Id = t2.new_service_Id;

E retorne registros corretos, mas quando tento isso:

select * from test2.dbo.new_services as t1,
 MSCRM.dbo.new_services as t2
where t1.new_service_Id != t2.new_service_Id;

Ele retorna 308 records! O new_service_id é o guid do registro. Onde está errado?

sql-server where
  • 1 respostas
  • 182 Views
Martin Hope
Coxer
Asked: 2019-07-25 06:19:50 +0800 CST

Ordem do resultado WHERE IN para PostgreSQL

  • 0

Se eu usar a seguinte seleção

SELECT * FROM users WHERE id IN (3,1,2)

Posso esperar que o resultado esteja na mesma ordem dos IDs fornecidos?

postgresql where
  • 3 respostas
  • 686 Views

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve