You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Char(50)列前9位与Char(9)列做等值比较?

字符类型列匹配解决方案

针对Char(9)类型的Column1与Char(50)类型的Column2前9位等值匹配的问题,核心在于处理Char类型固定长度带来的尾部补空格问题,以下是主流数据库的具体实现方案:

通用思路

Char类型存储时会自动用空格补全到定义的长度,因此直接截取或trim单一列可能无法匹配,需要同时对两列的空格进行处理后再比较。

SQL Server

使用LEFT截取Column2前9位,结合LTRIM(RTRIM())(兼容全版本)或TRIM()(2017及以上版本)去除两边空格:

SELECT *
FROM your_table
WHERE LTRIM(RTRIM(Column1)) = LTRIM(RTRIM(LEFT(Column2, 9)))

也可通过LIKE简化逻辑(需先处理空格):

SELECT *
FROM your_table
WHERE TRIM(Column2) LIKE TRIM(Column1) + '%'

MySQL

用LEFT截取前9位,TRIM()统一处理两列空格:

SELECT *
FROM your_table
WHERE TRIM(Column1) = TRIM(LEFT(Column2, 9))

Oracle

通过SUBSTR截取Column2前9位,再用TRIM()消除空格:

SELECT *
FROM your_table
WHERE TRIM(Column1) = TRIM(SUBSTR(Column2, 1, 9))

额外注意

如果确认Column1存储的内容无前置空格,仅需处理尾部空格,可改用RTRIM()替代TRIM(),提升查询效率。

内容的提问来源于stack exchange,提问作者GSCT

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 18:45:56