SQL81 顾客登录名

文章描述了一个SQL查询任务,要求从Customers表中提取顾客ID、名称和基于cust_contact前两个字符及cust_city前三个字符组合成的大写登录名。示例展示了如何使用upper,concat和substr函数来完成这个任务。

描述

我们的商店已经上线了,正在创建顾客账户。所有用户都需要登录名,默认登录名是其名称和所在城市的组合。

给出 Customers表 如下:

cust_id

cust_name

cust_contact

cust_city

a1

Andy Li

Andy Li

Oak Park

a2

Ben Liu

Ben Liu

Oak Park

a3

Tony Dai

Tony Dai

Oak Park

a4

Tom Chen

Tom Chen

Oak Park

a5

An Li

An Li

Oak Park

a6

Lee Chen

Lee Chen

Oak Park

a7

Hex Liu

Hex Liu

Oak Park

【问题】编写 SQL 语句,返回顾客 ID(cust_id)、顾客名称(cust_name)和登录名(user_login),其中登录名全部为大写字母,并由顾客联系人的前两个字符(cust_contact)和其所在城市的前三个字符(cust_city)组成。提示:需要使用函数、拼接和别名。

【示例结果】

返回顾客id cust_id,顾客名称cust_name,顾客登录名 user_login

cust_id

cust_name

user_login

a1

Andy Li

ANOAK

a2

Ben Liu

BEOAK

a3

Tony Dai

TOOAK

a4

Tom Chen

TOOAK

a5

An Li

ANOAK

a6

Lee Chen

LEOAK

a7

Hex Liu

HEOAK

【示例解析】

例如,登录名是 ANOAK(Andy Li,居住在 Oak Park)

示例1

输入:

DROP TABLE IF EXISTS `Customers`;

CREATE TABLE IF NOT EXISTS `Customers`(

cust_id VARCHAR(255) NOT NULL COMMENT '客户id',

cust_name VARCHAR(255) NOT NULL COMMENT '客户姓名',

cust_contact VARCHAR(255) NOT NULL COMMENT '客户联系人',

cust_city VARCHAR(255) NOT NULL COMMENT '客户城市'

);

INSERT `Customers` VALUES ('a1','Andy Li','Andy Li','Oak Park'),('a2','Ben Liu','Ben Liu','Oak Park'),('a3','Tony Dai','Tony Dai','Oak Park'),('a4','Tom Chen','Tom Chen','Oak Park'),('a5','An Li','An Li','Oak Park'),('a6','Lee Chen','Lee Chen','Oak Park'),('a7','Hex Liu','Hex Liu','Oak Park');

复制

输出:

cust_id|cust_name|user_login

a1|Andy Li|ANOAK

a2|Ben Liu|BEOAK

a3|Tony Dai|TOOAK

a4|Tom Chen|TOOAK

a5|An Li|ANOAK

a6|Lee Chen|LEOAK

a7|Hex Liu|HEOAK

答案

select cust_id,cust_name,upper(concat(substr(cust_contact,1,2),substr(cust_city,1,3))) as user_login
from Customers

sql中使用到的函数

upper(字符串) --将所有字符串转换为大写

lower(字符串) --将所有字符串转换为小写

concat(字符串1,字符串2,...,字符串n) --拼接字符串

substr(字符串,开始位置,截取多少个字符串) --截取字符串

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值