Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

AnaSSuelo

Alguma função semelhante ao Decode()

Recommended Posts

Olá, pessoal.

 

Gostaria de saber se há alguma função do SQL server semelhante ao DECODE (expressão_de_base, comparação1,valor1,comparação2,valor2...padrão)

 

A função DECODE do Oracle é semelhante a uma série de instruções IF-THEN-ELSE aninhadas.

 

Anassuelo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta ver se é o CHARINDEX, senão tenta ver aqui, tem a maioria dos comandos:

SQL Server versão 2000: http://msdn2.microsoft.com/en-us/library/a...42(SQL.80).aspx

SQL Server versão 2005: http://msdn2.microsoft.com/en-us/library/ms189826.aspx

 

 

t+

http://forum.imasters.com.br/public/style_emoticons/default/natal_biggrin.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu estou somando um número de dias a uma data e quando o número é zero a data vencimento aparece vazia. Veja a seguir exemplo:

SELECT A.CODIGO
	 , A.NOME 
	 , (CONVERT(SmallDatetime,:dFatVen)+ A.PRAZODIAS)					AS DATAVEN1
	 , DATEADD(DAY,A.PRAZODIAS,CONVERT(SmallDatetime,:dFatVen)) AS DATAVEN2
	 , DATEADD(DAY,A.PRAZODIAS,:dFatVen))									  AS DATAVEN3
	 , A.PRAZODIAS
FROM <A>
Nenhuma das opções acima satisfez. dFatVen é string '20071127'. Tentei convertendo, sem converter... com DateAdd e sem o DateAdd... funciona quando o PRAZODIAS for maior q zero.

 

ENTCOD ENTNOM DATAVEN1 DATAVEN2 DATAVEN3 PRAZODIAS

-------- ------------------------------------------ ---------- ---------- ------

00000001 ERACI ARGENTINA 12/12/2007 12/12/2007 12/12/2007 15

00000003 BANCO DO BRASIL / / / / / / 0

00000047 EDITORA MARANATA / / / / / / 0

00000047 EDITORA MARANATA / / / / / / 0

00000047 EDITORA MARANATA / / / / / / 0

00000001 ERACI ARGENTINA 12/12/2007 12/12/2007 12/12/2007 15

00000001 ERACI ARGENTINA 12/12/2007 12/12/2007 12/12/2007 15

 

O que você sugere usar para filtrar quando PRAZODIAS = 0 ? ou tô usando a função de datas erradamente?

 

AnaSSuelo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se existir uma função que verifique se um conteúdo é Zero... Como um IF dentro do SELECT mesmo.

 

Exemplo:

SELECT A.CODIGO

, A.NOME

, IF(A.PRAZODIAS=0, CONVERT(SmallDatetime,:dFatVen), CONVERT(SmallDatetime,:dFatVen)+ A.PRAZODIAS) AS DATAVENC

FROM <A>

 

Então não haveria o problema de DATAVENC ficar vazio, caso o prazo de dias fosse 0 (zero), a coluna iria mostrar o valor em dFatVen.

 

AnaSSuelo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se existir uma função que verifique se um conteúdo é Zero... Como um IF dentro do SELECT mesmo.

 

Exemplo:

SELECT A.CODIGO

, A.NOME

, IF(A.PRAZODIAS=0, CONVERT(SmallDatetime,:dFatVen), CONVERT(SmallDatetime,:dFatVen)+ A.PRAZODIAS) AS DATAVENC

FROM <A>

 

Então não haveria o problema de DATAVENC ficar vazio, caso o prazo de dias fosse 0 (zero), a coluna iria mostrar o valor em dFatVen.

 

AnaSSuelo.

AnaSSuelo

 

você verificou no link que passei no post anterior, o CASE, é exatamente ele que faz esse papel do IF dentro do select, verifique a sintaxe e os exemplos ai no link. (esse link é o oficial do produto)

 

 

http://forum.imasters.com.br/public/style_emoticons/default/natal_happy.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.