MYSQL,如何组合名字的前2个字母和姓氏的前5个字母

时间:2013-02-14 17:23:48

标签: mysql sql substring concat

我正在尝试编写一个SQL查询(使用SELECT函数),它将获取名字的前两个字母和姓氏的前5个字母,然后将它们组合并将它们放入一个名为的新列中“用户名。”我一直尝试使用SUBSTRING和CONCAT函数,但我的语法不对。有谁知道如何做到这一点?

4 个答案:

答案 0 :(得分:5)

您可以同时使用CONCAT()SUBSTRING()

select 
  concat(substring(fname, 1, 2), substring(lname, 1, 5)) UserName
from yourtable

请参阅SQL Fiddle with Demo

或者您可以将LEFT()CONCAT()

一起使用
select 
  concat(left(fname, 2), left(lname, 5)) UserName
from yourtable

请参阅SQL Fiddle with Demo

如果您的样本数据是:

CREATE TABLE yourtable (`fname` varchar(4), `lname` varchar(50)) ;

INSERT INTO yourtable (`fname`, `lname`)
VALUES ('John', 'Smithton'),
    ('Abby', 'Jonesing');

两个查询都将返回:

| USERNAME |
------------
|  JoSmith |
|  AbJones |

答案 1 :(得分:0)

在 oracle 中,你可以使用类似的东西

select concat(substr(fname,1,3), substr(lname,1,3)) as username from <table_name>;

请注意,您也可以使用 substr 来修剪整数数据类型,而 left() 可能仅适用于 varchar。

答案 2 :(得分:-1)

尝试以下查询

select first_name,
       substr(first_name,1,2)||substr(lower(last_name),1,5) as "USER NAME",
       last_name 
from employees;

答案 3 :(得分:-2)

使用以下行

select  concat(left(empfname, 2) + ' ',left(emplname, 2)) UserNamefrom employee