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