Smart questions
Smart answers
Smart people
INTELLIGENT WORK FORUMS
FOR COMPUTER PROFESSIONALS

Member Login

Come Join Us!

Are you a
Computer / IT professional?
Join Tek-Tips now!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!

Join Tek-Tips
*Tek-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

LINK TO THIS FORUM!

Add Stickiness To Your Site By Linking To This Professionally Managed Technical Forum.
Just copy and paste the
code below into your site.

Partner With Us!

"Best Of Breed" Forums Add Stickiness To Your Site
Partner Button
(Download This Button Today!)

Feedback

"...Really appreciate your site. Really good site for learning what others do when they run into problems. You guy's are great!!!..."

Geography

Where in the world do Tek-Tips members come from?

Use of Case in the where clause

snufse1 (Programmer)
15 Apr 09 13:15
I have a proc where I need to condition my "where" clause:

create procedure get_eqmdet           
               (in @jobnumber char(12)
                   @costcode  char(8),
                   @suffix  char(2),  

select ........
where  glmcu  = @jobnumber and                             
        glsub  = @costcode and                              
        case                                                
            when @suffix = ' ' then glalty in ('  ', 'HR')  
            when @suffix <> ' ' then glalty = @suffix       
        end and ......                                            
        

        
I am passing in @Suffix as a parm. I am getting error:
Keyword IN not expected. Valid tokens: END.

 
blom0344 (TechnicalUser)
15 Apr 09 15:39
AFAIK a CASE will return a certain VALUE for each record passed. In your situation it returns an expression. I doubt if this is allowed..

Ties Blom
 
 

fredericofonseca (IS/IT--Management)
16 Apr 09 4:21
This should do the trick
select ........
where  glmcu  = @jobnumber and                             
        glsub  = @costcode and                              
  and (
         (@suffix = ' ' and glalty in ('  ', 'HR')
      or (@suffix <> ' ' and glalty = @suffix)
      )
 

Regards

Frederico Fonseca
SysSoft Integrated Ltd
www.syssoft-int.com

FAQ219-2884: How Do I Get Great Answers To my Tek-Tips Questions?
FAQ181-2886: How can I maximize my chances of getting an answer?

fredericofonseca (IS/IT--Management)
16 Apr 09 4:22
one bracket missing

select ........
where  glmcu  = @jobnumber and                             
        glsub  = @costcode and                              
  and (
         (@suffix = ' ' and glalty in ('  ', 'HR'))
      or (@suffix <> ' ' and glalty = @suffix)
      )

Regards

Frederico Fonseca
SysSoft Integrated Ltd
www.syssoft-int.com

FAQ219-2884: How Do I Get Great Answers To my Tek-Tips Questions?
FAQ181-2886: How can I maximize my chances of getting an answer?

snufse1 (Programmer)
20 Apr 09 7:52
Thank you. Worked purrrfectly.....

Reply To This Thread

Posting in the Tek-Tips forums is a member-only feature.

Click Here to join Tek-Tips and talk with other members!

Back To Forum

Close Box

Join Tek-Tips® Today!

Join your peers on the Internet's largest technical computer professional community.
It's easy to join and it's free.

Here's Why Members Love Tek-Tips Forums:

Register now while it's still free!

Already a member? Close this window and log in.

Join Us             Close