ESCRITA SQL NO SQLEXPRESS 2005

ADRIANO2605 27/06/2012 18:53:45
#405058
E ai pessoal, blz.
Seguinte me deparei com um problema. Eu programo em vb a um certo tempo utilizava banco de dados access e agora migrei para sql express, comecei com o 2005.
Ta correndo tudo muito bem, até que me deparei com uma escrita de sql que eu usava muito com o access e era uma maravilha que é a possibilidade de colocar condições dentro do sql. Ex.
Vamos supor que eu queira comparar o valor no banco de dados e dependendo do valor eu vou msotrar uma resposta diferente ao usuario.
iif(planos.tipo = true, [ô]Crédito[ô], [ô]Débito[ô])
Sendo que a primeira opção Crédito é se for verdadeiro, a segunda se for falso.
No access ela funfa deste jeitoque vcs viram ai eu insiro ela no meio do select antes do from.
No sqlexpress 2005 ele da um erro [Ô]Incorrect syntax near [ô]planos[ô][Ô]

outra alternativa era o case when
SQL = [Ô]select codigo, planos case when tipo = true [ô]Crédito[ô] then when tipo = false then [ô]Débito[ô] as TipoConta from planos where plano is not null and ativo = true order by plano[Ô]
este me da este erro keyword [ô]case[ô].
parece que ele não aceita. mas li em alguns lugares q o case funciona no express.

Voces sabem me dizer onde estou errando.

Segue os sql:
com case when
SQL = [Ô]select codigo, planos case when tipo = true [ô]Crédito[ô] then when tipo = false then [ô]Débito[ô] as TipoConta from planos where plano is not null and ativo = true order by plano[Ô]
com iif
SQL = [Ô]select codigo, planos iif(planos.tipo = true, [ô]Crédito[ô], [ô]Débito[ô]) as TipoConta from planos where plano is not null and ativo = true order by plano[Ô]

Desde já agradeço a todos pela força.
Obrigado.
ADRIANO2605 28/06/2012 10:16:16
#405098
Olha só andei pesquisando achei a forma correta mas nem dentro do ssms do sql ta rodando.
SELECT [CODIGO]
,[plano]
,[Ativo]
if [tipo]=True,[ô]Crédito[ô],[ô]Débito[ô] as TipoConta
FROM [Gestor].[dbo].[Planos]

Alguem consegue ver o que esta errado?

O erro é este
Msg 102, Level 15, State 1, Line 8
Incorrect syntax near [ô],[ô].
KERPLUNK 28/06/2012 10:37:06
#405099

if [tipo]=True then [ô]Crédito[ô] else [ô]Débito[ô] as TipoConta
ADRIANO2605 28/06/2012 11:15:27
#405106
Incorrect syntax near the keyword [ô]then[ô].

Kraks ja to ficando loko prq não estou conseguindo ver o erro.
Este campo tipo é um campo Bit, isso quer dizer que armazena 1 para true e 0 para false. será que pode ser isso?
TECLA 28/06/2012 17:36:03
#405142
Tente assim:

Select Case tipo When true Then [ô]Credito[ô] Else [ô]Debito[ô] End TipoConta
From Tabela
ADRIANO2605 29/06/2012 10:32:14
#405177
Rapaz consegui!
Tanto no ssms qto no vb.
Depois de levar uma surra desta escrita achei como funciona.

Segue ai para que necessite.

SQL = [Ô]SELECT CODIGO ,plano,TipoConta = case when tipo in ( [ô][Ô] & True & [Ô][ô] ) then [ô]Crédito[ô] when tipo in ( [ô][Ô] & False & [Ô][ô] ) then [ô]Débito[ô] End [Ô]
SQL = SQL & [Ô], ativo From Planos where plano is not null and ativo = [ô][Ô] & 1 & [Ô][ô] [Ô]
Interessante no sql express o alias ([Ô]tipoconta[Ô])tem de vir primeiro e ai eu falo o que ele irá verificar para receber os valores credito ou debito e neste caso que eu usei o case eu tenho de finalizar o case com o end. show de bola ficou bem legal.

Bom desde já agradeço a todos que se envolveram na solução.

obrigado a todos.
Tópico encerrado , respostas não são mais permitidas