Ir para conteúdo
Fórum Script Brasil
  • 0

Update + Case


@line

Pergunta

Olá

Gostaria de utilizar o CASE na instrução de UPDATE. Como no código abaixo:

SQL = "UPDATE TempRelMigraçãoEspecífica SET GAP = "

SQL = SQL & "CASE WHEN NívelOrigem = '-' THEN NívelDestino "

SQL = SQL & "ELSE NívelDestino - NívelOrigem END "

SQL = SQL & "WHERE ID = '" & ID & "'"

DB.Execute (SQL)

Mas ocorre o seguinte erro:

[Microsoft][Driver ODBC para Microsoft Access] Erro de sintaxe (operador faltando) na expressão de consulta 'CASE WHEN NívelOrigem = '-' THEN NívelDestino ELSE NívelDestino - NívelOrigem END'.

Alguém poderia me ajudar?

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Experimenta exibir esta SQL e veja se depois do "GAP = " está correto, porque não me parece que esteja. De qualquer forma, nunca usei CASE em expressões SQL, mas não serviria a função IIF()? Exemplo:

SQL = "UPDATE TempRelMigraçãoEspecífica SET GAP = Iif(NívelOrigem='-', NívelDestino, NívelDestino - NívelOrigem) WHERE ID = '" & ID & "'"
DB.Execute (SQL)

A forma do Iif é: iif(expressão, o_que_retornar_caso_V, o_que_retornar_caso_F).

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

@aline aki vai um exemplo do uso do CASE em SQLServer pode ser q t ajude:

SELECT   Category = 
      CASE type
         WHEN 'popular_comp' THEN 'Popular Computing'
         WHEN 'mod_cook' THEN 'Modern Cooking'
         WHEN 'business' THEN 'Business'
         WHEN 'psychology' THEN 'Psychology'
         WHEN 'trad_cook' THEN 'Traditional Cooking'
         ELSE 'Not yet categorized'
      END,
   CAST(title AS varchar(25)) AS 'Shortened Title',
   price AS Price
FROM titles
WHERE price IS NOT NULL
ORDER BY type, price
COMPUTE AVG(price) BY type
GO

Acho q isso pode t ajudar

[]´s

Link para o comentário
Compartilhar em outros sites

  • 0
Olá

Ocorre o seguinte erro quando utilizo o iif:

O item não pode ser encontrado na coleção correspondente ao nome ou ao ordinal solicitado.

Estou usando Access. Procurei no help e não há referência a essa função(no Access).

Como ficou sua SQL?

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...