Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 21
Default SQL embedded "IF" statement

Is there a way to embed an if statement into a SQL select? I want to make a
select output field = to one thing if a field is 1 and different if a field
is < 1. I am using Excel to perform all queries. If possible it might look
like this but I don't see if the IF is supported. If not, is there a
workaround?

SELECT F1, F2, IF(F11,F1*3,F1*2) FROM ATABLE

Thanks,
Dave

  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 339
Default SQL embedded "IF" statement


"dave k" wrote in message
...
Is there a way to embed an if statement into a SQL select? I want to make

a
select output field = to one thing if a field is 1 and different if a

field
is < 1. I am using Excel to perform all queries. If possible it might

look
like this but I don't see if the IF is supported. If not, is there a
workaround?

SELECT F1, F2, IF(F11,F1*3,F1*2) FROM ATABLE

Thanks,
Dave


It's called a CASE expression in SQl Server:
http://www.craigsmullins.com/ssu_0899.htm

Your query would end up like this:

SELECT F1, F2,
F3 = CASE F1
WHEN F1 1 THEN F1 * 3 ELSE F1 * 2
END,
FROM ATABLE

/Fredrik

/Fredrik


  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 21
Default SQL embedded "IF" statement

I tried this but can't get it to work. I am not sure if I have my syntax
correct or if this is not supported in Excel. I will keep trying. Do you
know if this is supported or not in Excel? Maybe only in SQL Server.

Thanks for the help.
Dave


"Fredrik Wahlgren" wrote:


"dave k" wrote in message
...
Is there a way to embed an if statement into a SQL select? I want to make

a
select output field = to one thing if a field is 1 and different if a

field
is < 1. I am using Excel to perform all queries. If possible it might

look
like this but I don't see if the IF is supported. If not, is there a
workaround?

SELECT F1, F2, IF(F11,F1*3,F1*2) FROM ATABLE

Thanks,
Dave


It's called a CASE expression in SQl Server:
http://www.craigsmullins.com/ssu_0899.htm

Your query would end up like this:

SELECT F1, F2,
F3 = CASE F1
WHEN F1 1 THEN F1 * 3 ELSE F1 * 2
END,
FROM ATABLE

/Fredrik

/Fredrik



  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 339
Default SQL embedded "IF" statement

Umm, this has nothing to do with Excel. The sample code I made was derived
from the sample in the link I gave. I think you should try out the code in
the Query Analyzer before trying it out in Excel. For more links, see Books
Online or google sql server case select
I'm not sure whether the comma is correct

/Fredrik


"dave k" wrote in message
...
I tried this but can't get it to work. I am not sure if I have my syntax
correct or if this is not supported in Excel. I will keep trying. Do you
know if this is supported or not in Excel? Maybe only in SQL Server.

Thanks for the help.
Dave


"Fredrik Wahlgren" wrote:


"dave k" wrote in message
...
Is there a way to embed an if statement into a SQL select? I want to

make
a
select output field = to one thing if a field is 1 and different if a

field
is < 1. I am using Excel to perform all queries. If possible it

might
look
like this but I don't see if the IF is supported. If not, is there a
workaround?

SELECT F1, F2, IF(F11,F1*3,F1*2) FROM ATABLE

Thanks,
Dave


It's called a CASE expression in SQl Server:
http://www.craigsmullins.com/ssu_0899.htm

Your query would end up like this:

SELECT F1, F2,
F3 = CASE F1
WHEN F1 1 THEN F1 * 3 ELSE F1 * 2
END,
FROM ATABLE

/Fredrik

/Fredrik





  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 74
Default SQL embedded "IF" statement

dave k wrote:
Is there a way to embed an if statement into a SQL select?

SELECT F1, F2, IF(F11,F1*3,F1*2) FROM ATABLE


Your use of F1 suggests you are querying Excel using MS Jet. Jet does
not support the standard SQL CASE WHEN syntax, so try IIf (immediate
if) e.g.

SELECT F1, F2, IIF(F11,F1*3,F1*2) FROM ATABLE;

For more complex case statements, you could use SWITCH e.g.

SELECT F1, F2, SWITCH(
F11 AND F1<=2, F1*3,
F12 AND F1<=3, F1*4,
1=1, F1*2
) FROM ATABLE;

Jamie.

--

Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Excel - Golf - how to display "-2" as "2 Under" or "4"as "+4" or "4 Over" in a calculation cell Steve Kay Excel Discussion (Misc queries) 2 August 8th 08 01:54 AM
embedding "ISERROR" function into an "IF" statement [email protected] Excel Worksheet Functions 8 January 4th 07 12:01 AM
vba: How do I write a "For Each Statement" nested in a "With Statement"? Mcasteel[_30_] Excel Programming 1 November 8th 04 09:47 PM
vba: How do I write a "For Each Statement" nested in a "With Statement"? Mcasteel[_27_] Excel Programming 1 November 8th 04 09:23 PM
vba: How do I write a "For Each Statement" nested in a "With Statement"? Mcasteel[_29_] Excel Programming 0 November 8th 04 09:08 PM


All times are GMT +1. The time now is 03:01 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"