If/then statement in an SQL query?

I have a simple SQL query that returns some data in the form of numbers.

i.e. I have a column marked [race] and the numbers returned in this column can be any number bwteen 1-6.

If the number is '1' in this column, I would like it to say 'Caucasian' if it is 2, it should say 'Asian' and so on.

How would I do this?

Thanks!

LVL 6
hyphenpipeAsked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
Guy Hengel [angelIII / a3]Connect With a Mentor Billing EngineerCommented:
you have 2 options:
* create a table with 2 columns : race_id and race_name, store in there the 6 rows, and your query should make a (left) join on this table.

* use a CASE statement:
  CASE [race] WHEN 1 THE 'caucasian' WHEN 2 THEN 'asian' ... ELSE 'N/A' END

as you can imagine: the first approach has the big advantage that for new values, you just enter the pair in the table and the queries will continue to work...
0
 
pzozulkaCommented:
Select Field1, Field2, Field3,
CASE WHEN Field1 = 1 Then 'Caucasian'
          When Field1 = 2 Then 'Asian'
End As RACE
From Table
0
 
Compaq_EngineerCommented:
You can use the CASE statement for example,
CASE Race
  WHEN 1 THEN 'Caucasian'
  WHEN 2 THEN 'Asian'
  etc....
  END
You may want to read the attached weblink http://www.4guysfromrolla.com/webtech/102704-1.shtml
0
 
howyueCommented:
u have 2 options:
Method 1. hardcode the race everytime u write the a query that u wan to show the name of the race
Method 2. create a race maintenance table to store the name of the race and join it whenever u wan to show the name

take this as example:
1=Europeon
2=Asian
3=African
4=American
5=Caucasian
/* Create sample table */
CREATE TABLE Race (
	Race INT
)
CREATE TABLE RaceMaintenance (
	Race INT,
	Remark VARCHAR(20)
)
/* Insert sample data */
INSERT INTO Race
SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 
INSERT INTO RaceMaintenance
SELECT 1, 'Europeon' UNION ALL SELECT 2, 'Asian' UNION ALL SELECT 3, 'African' UNION ALL SELECT 4, 'American' UNION ALL SELECT 5, 'Caucasian' 
 
/* Method 1 */
SELECT 
	CASE Race
		WHEN 1 THEN 'Europeon'
		WHEN 2 THEN 'Asian'
		WHEN 3 THEN 'African'
		WHEN 4 THEN 'American'
		WHEN 5 THEN 'Caucasian'
		ELSE 'Other' END Race
FROM Race
 
/* Method 2 */
SELECT r.Race, m.Remark
FROM Race r
LEFT JOIN RaceMaintenance m
	ON r.Race = m.Race

Open in new window

0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.