2013-02-20 75 views

回答

0

另一種方式來做到這一點

SELECT CONCAT(CASE gender 
       WHEN 'Male' THEN 'Mr. ' 
       WHEN 'Female' THEN 'Ms. ' 
       END, `fname`, ' ', `lname`) AS `name` 
    FROM customer 

sqlfiddle

輸出

|   NAME | 
------------------ 
| Mr. Jhon Doe | 
| Ms. Helen Ross | 

您可以使用CASE gender WHEN 'Male' THEN 'Mr. ' ELSE 'Ms. '但是,問題是,如果你的性別欄爲空那麼你會得到女士的所有記錄whe重新性別不明(或客戶不想透露)

sqlfiddle

+0

哎,非常感謝。你救了我的一天:) – 2013-02-21 15:31:38

3

可以使用inline IF聲明,

SELECT IF(gender = 'Male', CONCAT('Mr. ', fname),CONCAT('Ms. ', fname)) Name 
FROM customer 

你也可以用它CASE其他RDBMS支持

SELECT CASE WHEN gender = 'Male' 
      THEN CONCAT('Mr. ', fname) 
      ELSE CONCAT('Ms. ', fname) 
     END Name 
FROM customer