0

好的,我有一张客户表

在屏幕截图中,您可以看到列

我想要做的是如果客户的性别是男性,我想将他的名字与先生连接。否则如果是女性,则应该与女士连接。我该怎么做?

4

2 回答 2

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
于 2013-02-20T06:58:52.747 回答
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. ',但问题是如果您的性别列可以为空,那么您将获得 Ms. 用于所有性别未知(或客户不想透露)的记录

sqlfiddle为此

于 2013-02-20T07:08:38.220 回答