我需要找到“like”记录的副本。这就是我的意思。
我有目录号作为字符,像'123'或'a1b2c3'生产突然开始填充这些10个地方,所以新的ID进入0000123,所以他们在比赛中把数据放进去,这是“技术上”独特的。
我需要做的是找出所有的记录,有匹配之间的非填充和填充。
我试过这个
SELECT p.sku, COUNT(p.id)
FROM products p
GROUP BY p.sku
HAVING COUNT(p.id) > 1
这给了我一个重复的计数(有用,但不够有用)
我想我需要一个工会,但我不清楚该怎么办。感谢您的帮助
所以用英语说吧
查找长度为10的所有记录,并查找最右边的字符与10个记录中最右边的字符匹配的任何其他记录。
所以呢
00000asdfg would match 'asdfg' but would not match 'sdfg'
我想我正在尝试匹配左边不是“0”的任何字符
db2版本10
2条答案
按热度按时间afdcj2ne1#
使用自联接:
此查询将返回包含的所有行
sku
长度为10的s和任何匹配项sku
通过移除前导0
s。f0ofjuux2#
你可以垫上垫子
id
首先,然后很容易找到重复的。例如:参见db<>fiddle上的运行示例。
您没有提到db2数据库的体系结构(iseries、luw、z/os)。如果
LPAD()
在您的体系结构中不可用,您可以使用REPEAT()
以及RIGHT()
得到同样的结果。例如: