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 / user-73986

Ravi's questions

Martin Hope
Ravi
Asked: 2016-06-16 10:21:34 +0800 CST

Existe uma alternativa melhor do que LIKE para esta consulta?

  • 4

Estou tentando recuperar dados de uma tabela onde existem códigos de projetos que são identificados pelos três primeiros números, os demais são únicos. Assim, por exemplo, a consulta é:

SELECT * FROM 
TableA
WHERE LEFT(acccode,3) IN ('121','131','141','151','161')

Agora, quero que essa condição seja verdadeira para todos esses códigos, exceto para um. Digamos, para o primeiro, eu quero que pareça mais quatro caracteres para algo como '121-111%'. Como posso alterar meu INoperador lá ou tenho que ir com um LIKEoperador com algo como:

SELECT * FROM
TableA
WHERE acccode LIKE '121-111%'
    OR acccode LIKE '131%'...

e assim por diante...?

Para esclarecer: os códigos que começam com 121-111, 131, 141, 151, 161 são os que desejo selecionar.

Todas as colunas são nvarchar.

sql-server sql-server-2008
  • 1 respostas
  • 12641 Views
Martin Hope
Ravi
Asked: 2016-04-26 20:00:38 +0800 CST

Como definir o padrão do parâmetro SSRS para desmarcar opções específicas?

  • 0

Em um parâmetro de seleção múltipla para SSRS (2008), desejo que o estado padrão de um parâmetro de entrada seja tal que uma opção seja desmarcada enquanto todas as outras sejam marcadas. Como na imagem a seguir:

insira a descrição da imagem aqui

Existe alguma maneira no SSRS de fazer isso? Eu acho que não há como se referir a um estado "marcado" para que isso possa ser tratado?

ssrs
  • 1 respostas
  • 875 Views
Martin Hope
Ravi
Asked: 2016-04-02 17:18:31 +0800 CST

Existe uma maneira de exibir várias mensagens de erro com RAISERROR condicionalmente?

  • 1

Estou pensando em algo como a instrução CASE para RAISERROR, mas quero que o código restante seja verificado também e não pule nada depois de encontrar o primeiro RAISERROR. Agora eu tenho algo assim.

insira a descrição da imagem aqui

Agora, quero uma maneira de RAISERROR no final e fazê-lo condicionalmente. Portanto, se houver dois erros em três verificações, ambos devem ser exibidos ao usuário. Obrigada.

sql-server sql-server-2008
  • 2 respostas
  • 1799 Views
Martin Hope
Ravi
Asked: 2015-12-03 12:02:33 +0800 CST

Anulando outros parâmetros de data no SSRS na seleção de um

  • 2

Eu configurei várias datas como parâmetros de entrada e na consulta SQL, configurei a cláusula WHERE como:

WHERE datecol1 >= @date1 OR (@date1 IS NULL)

Isso trata as datas como parâmetros opcionais. Eu tenho três parâmetros de data. Quero fazer o relatório de forma que, se o usuário selecionar uma data, outras duas sejam anuladas, como o nulo deve ser verificado.

Além disso, agora, tenho essa configuração em valores padrão parte do parâmetro de data que desejo que seja dependente do outro parâmetro de data.

insira a descrição da imagem aqui

O que eu estou fazendo errado aqui? Porque isso ainda não funciona.

sql-server ssrs
  • 1 respostas
  • 1713 Views
Martin Hope
Ravi
Asked: 2015-11-17 18:56:34 +0800 CST

Por que o SQL Injection não acontece nesta consulta dentro de um procedimento armazenado?

  • 18

Eu fiz o seguinte procedimento armazenado:

ALTER PROCEDURE usp_actorBirthdays (@nameString nvarchar(100), @actorgender nvarchar(100))
AS
SELECT ActorDOB, ActorName FROM tblActor
WHERE ActorName LIKE '%' + @nameString + '%'
AND ActorGender = @actorgender

Agora, eu tentei fazer algo assim. Talvez eu esteja fazendo isso errado, mas quero ter certeza de que tal procedimento pode impedir qualquer SQL Injection:

EXEC usp_actorBirthdays 'Tom', 'Male; DROP TABLE tblActor'

A imagem abaixo mostra o SQL acima sendo executado no SSMS e os resultados sendo exibidos corretamente ao invés de um erro:

insira a descrição da imagem aqui

A propósito, adicionei essa parte após o ponto e vírgula depois que a consulta foi executada. Depois executei novamente, mas quando verifiquei se a tabela tblActor existe ou não, ela ainda estava lá. Estou fazendo algo errado? Ou isso é realmente à prova de injeção? Acho que o que estou tentando perguntar aqui também é que um procedimento armazenado como este é seguro? Obrigada.

sql-server sql-server-2008
  • 2 respostas
  • 3849 Views
Martin Hope
Ravi
Asked: 2015-11-04 12:16:55 +0800 CST

O que Then 1 else 0 significa em uma expressão CASE usada com uma função de agregação?

  • 5
SUM(CASE WHEN column1 = 'value1' THEN 1 ELSE 0 END),
SUM(CASE WHEN column2 = 'value2' THEN 1 ELSE 0 END)..

Não sei por que estou achando difícil entender o que exatamente está acontecendo na declaração acima e o que exatamente 'Then 1 else 0' está fazendo aqui.

sql-server
  • 2 respostas
  • 60962 Views
Martin Hope
Ravi
Asked: 2015-11-03 06:15:37 +0800 CST

Como faço para controlar a ordem/arranjo de determinadas colunas em um conjunto de resultados?

  • 1

É possível controlar a ordem de classificação em um conjunto de resultados? Então, se eu quiser dar uma ordem personalizada de aparência (em vez da ordem ASC ou DESC), como posso fazer isso? Eu li algumas respostas no Stackoverflow que falam sobre o uso de instruções CASE em ORDER BY, mas não entendo como isso funciona e como fazê-lo funcionar para obter o que desejo.

insira a descrição da imagem aqui

Na coluna acima, por exemplo, quero, digamos, que Mitchell seja o último, Carson o primeiro, Reiter o quinto, etc.

sql-server
  • 1 respostas
  • 396 Views
Martin Hope
Ravi
Asked: 2015-10-15 05:53:30 +0800 CST

Qual seria a maneira mais eficiente de verificar valores nulos em todas as colunas para várias tabelas?

  • 3

Digamos que eu tenha três tabelas ou quatro tabelas que desejo verificar se há valores presentes e não quero que nenhuma delas seja nula. SE forem nulos, enviarei uma notificação por e-mail por linha. Qual seria a melhor maneira de fazer isso? Devo fazer um procedimento armazenado com instruções IF separadamente?

Digo isso porque todas essas tabelas não têm restrições, apenas extraem dados de uma planilha do Excel. Portanto, criar uma variável de tipo de tabela e união ou junção interna não retorna nada, pois até mesmo os nomes das colunas são diferentes, mas as informações que elas armazenam são o mesmo tipo de informação. Assim, por exemplo, se em uma tabela existe uma coluna chamada 'DueDate', na outra tabela, esse mesmo tipo de informação é chamada 'PaymentDate'. Como eu executaria tal verificação em todas essas tabelas?

Atualização: aqui está o que pensei até agora: digamos que as duas tabelas sejam A e B, então

DECLARE @messageBody NVARCHAR(MAX)
DECLARE @iterator int
DECLARE @Rowcount int
DECLARE @varTableA TABLE(tablecounter int IDENTITY(1,1), DueDate date, Account NVARCHAR(20), Retailer NVARCHAR(20), Interest float)


INSERT INTO @varTableA (DueDate, Account, Retailer, Interest)
SELECT DueDate, Account, Retailer, Interest
FROM TableA 
WHERE DueDate IS NULL OR Account IS NULL OR Retailer IS NULL OR Interest IS NULL

SET @Rowcount = @@ROWCOUNT
SET @iterator = 1


WHILE(@iterator <= @Rowcount)
BEGIN 

SET @messageBody = (SELECT 'No values in following columns' + 'Duedate: ' + ISNULL(Duedate, 'No value') + CHAR(10) + CHAR(13) 
+ 'Account: ' + ISNULL(Account, 'No value') + CHAR(10) + CHAR(13)
+ 'Retailer: ' + ISNULL(Retailer, 'No Value') + CHAR(10) + CHAR(13)
+ 'Interest: ' + ISNULL(Interest, 'No Value') + CHAR(10) + CHAR(13)

                    FROM @varTableA 
                    WHERE @tablecounter = @iterator)

EXEC msdb.dbo.sp_send_dbmail @profilename = [name], @recipients = [reclist], @subject = [sub], @body = @messageBody
SET @iterator = @iterator + 1
END

E para repetir isso no mesmo ou em um procedimento armazenado separado para TableB e Table C. Existe uma maneira melhor de fazer isso ou você acha que estou fazendo isso da maneira certa?

sql-server sql-server-2008
  • 2 respostas
  • 2645 Views
Martin Hope
Ravi
Asked: 2015-10-02 07:30:04 +0800 CST

Por que Convert está sendo usado nesta instrução e como ele difere de CAST?

  • 1

Este é um trecho de código na página do MSDN para a cláusula OVER:

USE AdventureWorks2012;
GO
SELECT BusinessEntityID, TerritoryID      
,DATEPART(yy,ModifiedDate) AS SalesYear
,CONVERT(varchar(20),SalesYTD,1) AS  SalesYTD
,CONVERT(varchar(20),AVG(SalesYTD) OVER (PARTITION BY TerritoryID 
                                        ORDER BY DATEPART(yy,ModifiedDate) 
                                       ),1) AS MovingAvg
,CONVERT(varchar(20),SUM(SalesYTD) OVER (PARTITION BY TerritoryID 
                                        ORDER BY DATEPART(yy,ModifiedDate) 
                                        ),1) AS CumulativeTotal
FROM Sales.SalesPerson
WHERE TerritoryID IS NULL OR TerritoryID < 5
ORDER BY TerritoryID,SalesYear;

Portanto, estou tendo problemas para entender por que a função CONVERT teve que ser usada lá. Presumo que tenha a ver com os tipos de retorno de um dos campos na parte da expressão da função de conversão? O CAST pode ser usado em vez disso? A segunda pergunta que tenho é: como exatamente essa parte funciona?

SUM(SalesYTD) OVER (PARTITION BY TerritoryID
ORDER BY DATEPART(yy,ModifiedDate)

O que exatamente isso está dizendo? É uma soma calculada para cada ano? É isso?

sql-server sql-server-2008
  • 3 respostas
  • 150 Views
Martin Hope
Ravi
Asked: 2015-09-30 06:40:54 +0800 CST

Como faço para somar dados em intervalos de 3 meses?

  • 1

Tenho um relatório onde preciso somar os totais de uma coluna e agrupá-los por empresa selecionada. Eu tenho que fazer isso no T-SQL por 4 intervalos: 0-3 meses, 3-6 meses, 6-12 meses, > 12 meses Estou confuso sobre como isso seria implementado no T-SQL. Há uma coluna de saldo na qual tenho que totalizar. O problema que não consigo entender é o resumo desses intervalos de datas. Como isso pode ser feito em T-SQL?

O usuário deve inserir a escolha da empresa e uma data e, com base nela, devo gerar o resumo da coluna de saldo dentro dos intervalos especificados, que foram 0-3 meses, 3-6 meses, 6-12 meses,> 12 meses

Estou pensando desta forma: Estou pensando desta forma: Faça intervalos de datas, então: suponha que @date seja a data selecionada pelo usuário então:

DECLARE @daterange1start DATE = @date
DECLARE @daterange1end DATE = (SELECT DATEADD(m,3,@daterange1start))
DECLARE @daterange2start DATE = @daterange1end
DECLARE @daterange2end DATE = (SELECT DATEADD(m,3,@daterange2start))
DECLARE @daterange3start DATE = @daterange2end
DECLARE @daterange3end DATE = (SELECT DATEADD(m,6,@daterange3start)) '

E então usando o caso

SUM (CASE WHEN  dueDate BETWEEN @daterange1start AND @daterange1end THEN    Balance ELSE 0 END) AS '0-3 Months', 
SUM (CASE WHEN dueDate BETWEEN @daterange2start AND @daterange2end THEN Balance ELSE 0 END) AS '3-6 Months',
SUM (CASE WHEN dueDate BETWEEN @daterange3start AND @daterange3end THEN Balance ELSE 0 END) AS '6-12 Months''

Estou pensando da maneira certa em termos de uma solução correta?

Obrigada.

sql-server sql-server-2008
  • 2 respostas
  • 8037 Views
Martin Hope
Ravi
Asked: 2015-09-26 09:14:48 +0800 CST

As expressões repetidas e idênticas serão processadas novamente?

  • 1

Eu sou novo no servidor SQL e estava tentando usar um alias em uma cláusula where e então percebi que a ordem de processamento tornava difícil fazer isso, então usei isto:

SELECT DISTINCT * FROM (SELECT LEFT(fiscal,4) AS fiscalyear FROM
Transactions )      fiscalyears
WHERE fiscalyear >= '2009'

Eu poderia ter usado isso também, pois funciona também:

SELECT DISTINCT LEFT(fiscal, 4) FROM Transactions
WHERE LEFT(fiscal, 4) >= '2009'

Agora, a pergunta que tenho sobre isso é: um método é melhor que o outro? O plano de execução da consulta parece idêntico para ambos (não sei como ler um plano de consulta em profundidade, apenas vi que é semelhante em ambos os casos). Esta é apenas uma pequena tabela com um pequeno número de linhas, mas haverá diferenças perceptíveis com grandes quantidades de dados?

sql-server
  • 1 respostas
  • 68 Views
Martin Hope
Ravi
Asked: 2015-09-12 05:29:05 +0800 CST

Atribuindo resultados de procedimentos armazenados à variável SSIS

  • 9

Estou tentando obter o valor de um procedimento armazenado em uma variável SSIS e, em seguida, testando para ver se duas tarefas SSIS podem funcionar se eu adicionar uma expressão. Então, por exemplo, estou tentando usar este procedimento armazenado:

insira a descrição da imagem aqui

Talvez eu esteja configurando as propriedades da variável SSIS totalmente erradas, porque também não tenho certeza se estou fazendo isso da maneira certa para que o valor proc armazenado seja importado para uma variável SSIS. Por favor, diga-me se você precisar de mais capturas de tela de qualquer outra coisa.

Aqui está o exemplo da tarefa:

insira a descrição da imagem aqui

E aqui está a captura de tela do Precedence Constraint Editor:

insira a descrição da imagem aqui

E aqui estão as propriedades para a primeira tarefa:

insira a descrição da imagem aqui

Eu quero que ele avance (ou falhe) com base nessa condição. Mas quando eu testo, o processo flui da primeira tarefa para a segunda, independentemente, e apenas me mostra "100% concluído" para a primeira tarefa e nada sobre se verificou se essa expressão é verdadeira ou não. Como posso fazer tal coisa e o que está errado? Eu tenho uma variável no SSIS chamada 'orderCount' para obter o valor do procedimento armazenado.

sql-server ssis
  • 1 respostas
  • 23599 Views
Martin Hope
Ravi
Asked: 2015-09-10 07:14:10 +0800 CST

Pergunta sobre o controle de fluxo de trabalhos baseados em SQL no SSIS

  • 0

Pergunta: Tenho referente a SQL e SSIS:

Como faço para um pacote SSIS funcionar de acordo com um fluxo lógico que mapeei para ele?

Digamos que haja seis etapas, tenho a lógica de como todas devem ser executadas.

Então , por exemplo , se A falhar, faça b, independentemente da falha de b, faça C, etc. Mas está se tornando uma grande dor de cabeça tentar implementar isso no SSIS.

As restrições de precedência convencionais são muito simples e 'lineares' para esse tipo de coisa. Então, pensei que talvez pudesse criar uma tabela separada que armazenasse os valores de 'flags' que definirei como 1 ou 0 e esses sinalizadores corresponderão ao resultado de cada etapa.

Vou manter dois conjuntos de 6 valores em uma tabela, um para a última execução do meu pacote e outro para a execução atual e, em seguida, fazer comparações para garantir a consistência dos dados em várias tabelas em várias execuções (considerando qualquer falha de qualquer etapa dessa maneira) mas não tenho ideia de como implementar isso agora.

sql-server ssis
  • 1 respostas
  • 76 Views
Martin Hope
Ravi
Asked: 2015-09-02 05:41:20 +0800 CST

Usando um servidor vinculado para importar dados do Excel

  • 3

Eu li muito sobre servidores vinculados serem ruins quando há vários saltos entre servidores e junções distribuídas.

E se eu estiver apenas usando um servidor vinculado para importar dados para o SQL Server de uma planilha do Excel?

E se isso for tudo que eu estiver fazendo e o resto estiver sendo feito no próprio SQL Server em um único servidor?

Quero evitar o SSIS devido a dores de cabeça com várias transações e encadeá-las umas às outras (o que está falhando por algum motivo).

sql-server sql-server-2008
  • 1 respostas
  • 1250 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