1

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

4

4 回答 4

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

如果您的样本数据是:

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

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

两个查询都将返回:

| USERNAME |
------------
|  JoSmith |
|  AbJones |
于 2013-02-14T17:27:18.900 回答
0

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

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

Note that u can use substr to trim integer datatypes too, while left() might only work for varchar.

于 2021-07-29T12:41:15.847 回答
-1

试试下面的查询

select first_name,
       substr(first_name,1,2)||substr(lower(last_name),1,5) as "USER NAME",
       last_name 
from employees;
于 2013-07-17T22:44:33.280 回答
-1

使用以下几行

select  concat(left(empfname, 2) + ' ',left(emplname, 2)) UserNamefrom employee
于 2017-06-12T12:09:14.510 回答