好的,我有一张客户表
我想要做的是如果客户的性别是男性,我想将他的名字与先生连接。否则如果是女性,则应该与女士连接。我该怎么做?
你可以使用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
另一种方法
SELECT CONCAT(CASE gender
WHEN 'Male' THEN 'Mr. '
WHEN 'Female' THEN 'Ms. '
END, `fname`, ' ', `lname`) AS `name`
FROM customer
输出
| NAME |
------------------
| Mr. Jhon Doe |
| Ms. Helen Ross |
您可能会使用CASE gender WHEN 'Male' THEN 'Mr. ' ELSE 'Ms. '
,但问题是如果您的性别列可以为空,那么您将获得 Ms. 用于所有性别未知(或客户不想透露)的记录