如何在SQL中仅显示城市名称前3个大写字母?
实现SQL中城市名前三个大写字母的查询方案
不同数据库的字符串截取函数略有差异,但核心逻辑都是先截取前3个字符,再转换为大写,以下是主流数据库的实现语句:
MySQL/MariaDB 写法
SELECT UPPER(LEFT(city_name, 3)) AS short_city FROM your_table;
SQL Server 写法
SELECT UPPER(LEFT(city_name, 3)) AS short_city FROM your_table; -- 也可以用SUBSTRING替代LEFT,效果一致 SELECT UPPER(SUBSTRING(city_name, 1, 3)) AS short_city FROM your_table;
Oracle 写法
SELECT UPPER(SUBSTR(city_name, 1, 3)) AS short_city FROM your_table;
语句解释
LEFT(city_name, 3)(MySQL/SQL Server)或SUBSTR(city_name, 1, 3)(Oracle):从city_name字段的起始位置截取3个字符,比如"mumbai"会被截成"mum","pune"截成"pun"。UPPER():将截取后的小写字符串转换为大写,最终得到"MUM"、"PUN"这类结果。AS short_city:给结果列指定一个别名,让输出更易读。
特殊情况说明
如果城市名称长度不足3个字符(比如"Del"或"Go"),函数会自动截取所有存在的字符再转大写,比如"Go"会输出"GO"。
内容的提问来源于stack exchange,提问作者Avedhesh Kumar
相关产品推荐
相关产品推荐

