如何编写SQL实现两列长度相等返回null及员工字段长度查询
SQL字符长度对比及查询实现
1. 两列字符长度对比相等返回null的实现方法
核心逻辑是用SQL内置的长度计算函数配合条件判断语句实现:
- 长度计算:统计字符数可使用
CHAR_LENGTH()(MySQL/PostgreSQL适用)或LEN()(SQL Server适用),需要统计字节长度时可替换为LENGTH() - 条件判断:使用
CASE WHEN语句匹配「两列长度相等」的场景,匹配时直接返回NULL即可
2. 员工信息查询SQL语句
以下语句可直接实现需求,兼容绝大多数主流数据库:
SELECT f_name, l_name, CHAR_LENGTH(f_name) AS f_name_length, CHAR_LENGTH(l_name) AS l_name_length, CASE WHEN CHAR_LENGTH(f_name) = CHAR_LENGTH(l_name) THEN NULL ELSE CHAR_LENGTH(f_name) END AS final_result FROM employees;
适配调整说明
- SQL Server环境需要把所有
CHAR_LENGTH()替换为LEN() - 不需要保留原始两列的长度结果时,可直接删除
f_name_length、l_name_length对应的两行SELECT配置
内容的提问来源于stack exchange,提问作者Yato7G5
相关产品推荐
相关产品推荐

