sql-server - 选择具有该表的特定字段的不同值的表的值
问题描述
假设这个数据库表:
DECLARE @SUBSTITUTE TABLE(SUBSTITUTECODE varchar(25), COLORCODE varchar(15), SIZEPOS smallint);
INSERT INTO @SUBSTITUTE(SUBSTITUTECODE, COLORCODE, SIZEPOS) VALUES
('002252200005001', 'BLK', 2),
('002252200005002', 'BLK', 3),
('002252200005004', 'BLK', 5),
('002252200005005', 'BLK', 6),
('002252200005006', 'BLK', 10),
('002252200005007', 'BLK', 11),
('0022522005003', 'BLK', 4),
('0022522005004', 'BLK', 5);
我想得到所有SUBSTITUTECODE
, COLORCODE
, SIZEPOS
where SIZEPOS
is unique - 对每个重复值进行第一次迭代。
替代代码 | 色标 | SIZEPOS |
---|---|---|
002252200005001 | 黑色 | 2 |
002252200005002 | 黑色 | 3 |
002252200005004 | 黑色 | 5 |
002252200005005 | 黑色 | 6 |
002252200005006 | 黑色 | 10 |
002252200005007 | 黑色 | 11 |
0022522005003 | 黑色 | 4 |
最接近的类似问题来自 MySQL
先感谢您!
解决方案
请检查这是否能解决您的需求
DECLARE @SUBSTITUTE TABLE(SUBSTITUTECODE varchar(25), COLORCODE varchar(15), SIZEPOS smallint);
INSERT INTO @SUBSTITUTE(SUBSTITUTECODE, COLORCODE, SIZEPOS) VALUES
('002252200005001', 'BLK', 2),
('002252200005002', 'BLK', 3),
('002252200005004', 'BLK', 5),
('002252200005005', 'BLK', 6),
('002252200005006', 'BLK', 10),
('002252200005007', 'BLK', 11),
('0022522005003', 'BLK', 4),
('0022522005004', 'BLK', 5);
;With MyCTE AS (
SELECT SUBSTITUTECODE, COLORCODE, SIZEPOS
, RN = row_number() over (partition by SIZEPOS order by SUBSTITUTECODE) -- I assume that "first" you mean when ordering by SUBSTITUTECODE
FROM @SUBSTITUTE
)
SELECT SUBSTITUTECODE, COLORCODE, SIZEPOS
FROM MyCTE
WHERE RN = 1
推荐阅读
- c# - 如何自动刷新从共享数据库读取的datagridview?
- c# - 怎么玩刽子手?
- android - 动态更改为暗/亮模式时闪烁
- javascript - 单击形状以选择基础形状
- c# - 非常具体的扩展名的内容类型 * .asd
- python - 具有不同输入形状的神经网络
- c - 在不更改代码的情况下帮助 clang 做得更好
- shopify - 自定义 shopify 主题的最佳方式是什么?
- winapi - 如何在不在任何操作系统上安装任何东西的情况下自动签署代码?
- spring-boot - 有没有办法为 yaml 文件提供位置,因为 @ConfigurationProperties 中的位置已在 1.5 版中删除