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

如何在Snowflake中编写SQL查询查找Column1中的原始编号

如何查找Column1中的原始编号

在Snowflake中编写SQL查询的最优或最具表达性的方式是什么?

需匹配的逻辑如下:

  • Column5 = 0 且 Column1 以 qw 开头
  • 以qw开头的数据的最后3位数字 = 对应原始编号的最后3位数字
  • 二者的Column2、Column3、Column4值完全相同

原始数据

Column1Column2Column3Column4Column5
123452311452427890
qw3452311452420
239815622452436678
qw9815622452430
997653190452443345
qw7653190452440
448717845452452345
qw8717845452450

示例输出

原始编号待匹配编号
12345qw345
23981qw981
99765qw765
44871qw871

解决方案SQL

SELECT 
    orig.Column1 AS 原始编号,
    qw.Column1 AS 待匹配编号
FROM 
    your_table orig
INNER JOIN 
    your_table qw 
    ON orig.Column2 = qw.Column2
    AND orig.Column3 = qw.Column3
    AND orig.Column4 = qw.Column4
    AND RIGHT(orig.Column1, 3) = RIGHT(qw.Column1, 3)
WHERE 
    orig.Column5 != 0
    AND qw.Column5 = 0
    AND qw.Column1 LIKE 'qw%';

逻辑说明

  • 使用自连接将表与自身关联,分别筛选出原始记录(orig别名,Column5不为0)和待匹配的qw开头记录(qw别名,Column5为0且Column1以qw开头)
  • 通过Column2、Column3、Column4三个字段确保记录属于同一组
  • 用RIGHT()函数提取两个Column1字段的最后3位数字,确保二者匹配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 00:25:58