我正在尝试编写一个 SQL 查询(使用 SELECT 函数),它将获取名字的前两个字母和姓氏的前 5 个字母,然后将它们组合起来并将它们放在一个名为“用户名”的新列中。” 我试过一起使用 SUBSTRING 和 CONCAT 函数,但我的语法不正确。有谁知道如何做到这一点?
问问题
27884 次
4 回答
5
您可以同时使用CONCAT()
和SUBSTRING()
:
select
concat(substring(fname, 1, 2), substring(lname, 1, 5)) UserName
from yourtable
或者您可以LEFT()
使用CONCAT()
:
select
concat(left(fname, 2), left(lname, 5)) UserName
from yourtable
如果您的样本数据是:
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 回答