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

如何查询同一BARCODE列中含前缀与无前缀的关联条码记录?

解决BARCODE列纯数字条码与对应带前缀条码的查询问题

核心思路

先筛选出所有纯数字的条码记录,再通过自连接匹配对应的带前缀条码(单个字符前缀+纯数字内容)。

SQL Server 版本语句

SELECT 
    pure.BARCODE AS 纯数字条码,
    prefixed.BARCODE AS 带前缀条码
FROM 
    你的表名 pure
LEFT JOIN 
    你的表名 prefixed ON prefixed.BARCODE LIKE '_' + pure.BARCODE
WHERE 
    ISNUMERIC(pure.BARCODE) = 1
  • ISNUMERIC(pure.BARCODE) = 1:筛选出所有纯数字的条码记录
  • LEFT JOIN 关联带前缀的条码,_ 匹配任意单个字符前缀,确保前缀后紧跟纯数字条码内容
  • 若纯数字条码无对应带前缀记录,带前缀条码列会显示NULL,便于识别孤立数据

MySQL 版本语句

SELECT 
    pure.BARCODE AS 纯数字条码,
    prefixed.BARCODE AS 带前缀条码
FROM 
    你的表名 pure
LEFT JOIN 
    你的表名 prefixed ON prefixed.BARCODE REGEXP CONCAT('^[A-Za-z]', pure.BARCODE, '$')
WHERE 
    pure.BARCODE REGEXP '^[0-9]+$'
  • pure.BARCODE REGEXP '^[0-9]+$':精准匹配纯数字条码
  • REGEXP CONCAT('^[A-Za-z]', pure.BARCODE, '$'):限定前缀为单个字母,避免匹配非字母前缀的异常数据

之前语句的问题

WHERE [BARCODE] LIKE '_'+[BARCODE]逻辑错误,该条件要求条码值等于「下划线+自身」,不可能有符合条件的记录,自然无法得到预期结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 05:20:00