Q
Problem solve Get help with specific problems with your technologies, process and projects.

Conditional values in the SELECT list

Need to test on a field to determine the value that is displayed in a result set. Can I do that in the SELECT...

statement?

select memb.acct, memb.transamt, memb.name
if memb.transactioncode < 100 then memb.transamt = '0' 
else memb.transactioncode = '100'

I realise that the syntax is not correct, but this is what I am trying to accomplish.


SQL includes the CASE statement, a powerful conditional structure in the SELECT list; however, not all databases support this yet.

I think there's a small error in your question; you are setting the transaction amount to 0 when the transaction code is less than 100, otherwise you are setting the transaction code to 100. I'm going to change this slightly just to illustrate the syntax --

select memb.acct
     , CASE
         WHEN memb.transactioncode < 100
         THEN 0
         ELSE 100
       END  as transamt
     , memb.name
  from memb

See also this previous answer for an example of conditional logic using the Microsoft Access Iif function.

For More Information


This was last published in June 2001

Dig Deeper on Oracle and SQL

PRO+

Content

Find more PRO+ content and other member only offers, here.

Have a question for an expert?

Please add a title for your question

Get answers from a TechTarget expert on whatever's puzzling you.

You will be able to add details on the next page.

Start the conversation

Send me notifications when other members comment.

By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States. Privacy

Please create a username to comment.

-ADS BY GOOGLE

SearchDataManagement

SearchBusinessAnalytics

SearchSAP

SearchSQLServer

TheServerSide

SearchDataCenter

SearchContentManagement

SearchFinancialApplications

Close