Ask the Expert

Use CASE to translate a value to a string

Is it possible in SQL to substitute a string if a certain value is returned from a query? For example,

select emp_id from emp_tb



Would it be possible to replace 1 with John and 2 with Mary to give the end result of


    Requires Free Membership to View

Yes, you can stuff a whole raft [syn: batch, deal, flock, good deal, great deal, hatful, heap, lot, mass, mess, mickle, mint, muckle, peck, pile, plenty, pot, quite a little, sight, slew, spate, stack, tidy sum, wad, whole lot, whole slew] of translations into the SELECT if you wish...

select case emp_id 
            when 1 then 'John'
            when 2 then 'Mary'
            else cast(emp_id as char(4))
        end as emp_string 
  from emp_tb

Note that some database systems may require the CAST, but some don't, and will set the datatype of the CASE expression from the first defined expression inside the CASE.

This was first published in August 2004

There are Comments. Add yours.

TIP: Want to include a code block in your comment? Use <pre> or <code> tags around the desired text. Ex: <code>insert code</code>

REGISTER or login:

Forgot Password?
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
Sort by: OldestNewest

Forgot Password?

No problem! Submit your e-mail address below. We'll send you an email containing your password.

Your password has been sent to: