【发布时间】:2013-02-20 06:56:51
【问题描述】:
好的,我有一张客户表
我想做的是如果客户的性别是男性,我想把他的名字和先生连接起来。否则如果是女性,应该和女士连接起来。我该怎么做?
【问题讨论】:
好的,我有一张客户表
我想做的是如果客户的性别是男性,我想把他的名字和先生连接起来。否则如果是女性,应该和女士连接起来。我该怎么做?
【问题讨论】:
你可以使用inline IF声明,
SELECT IF(gender = 'Male', CONCAT('Mr. ', fname),CONCAT('Ms. ', fname)) Name
FROM customer
你也可以使用其他RDBMS支持的CASE
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.
sqlfiddle 为那个
【讨论】: