tsql - 选择两个字符串值之间的数据范围
解决方案
根据我对您的问题的了解,您似乎想要 AAA 和 DDD 之间的行。
桌子
DECLARE @t TABLE (Id INT, FileN VARCHAR(25), Col1 VARCHAR(255))
INSERT INTO @t VALUES
(1,'eee.doc','AAA'),(3,'eee.doc','234'),(4,'eee.doc','tt2'),(7,'eee.doc','wwpp'),
(8,'eee.doc','DDD'),(9,'eee.doc','tyyyuui'),(10,'ddd.doc','43ffhgd'),(12,'ddd.doc','AAA'),
(14,'ddd.doc','rtty'),(15,'ddd.doc','ppii'),(16,'ddd.doc','hhcc'),(18,'ddd.doc','7ghij'),
(20,'ddd.doc','DDD')
询问
SELECT t.*
FROM @t t
INNER JOIN ( SELECT b.*
FROM ( SELECT a.*, LEAD(Id, 1 , NULL) OVER (PARTITION BY FileN ORDER BY a.Id) NextId
FROM ( SELECT Id, FileN, Col1
FROM @t t
WHERE Col1 IN ('AAA','DDD')
) a
) b
WHERE b.Col1 = 'AAA'
) r
ON t.Id > r.Id AND t.Id < r.NextId
ORDER BY 1
输出
Id FileN Col1
========================
3 eee.doc 234
4 eee.doc tt2
7 eee.doc wwpp
14 ddd.doc rtty
15 ddd.doc ppii
16 ddd.doc hhcc
18 ddd.doc 7ghij
推荐阅读
- python - (多线程 Python)交替打印 1 到 10 个数字,使用两个线程
- pandas - 如何获取数据类型str的列的总和并按另一列分组
- sql - 至少 5 个唯一客户购买的产品的 SQL 数量
- visual-studio - 在 Visual Studio 中单击“查看 Windows 设置”时出现 Disp_E_Exception
- javascript - Angular 8:反应式表单自动映射和 PatchValue 设置成员数据
- javascript - -2130575251,Microsoft.SharePoint.SPException -
- php - PHP - 将来自不同查询的 MySQL 结果存储到数组中
- flutter - 如何固定步进器的无限高?
- c++ - 用VS和VScode运行c++程序的区别
- python - 当循环不重新运行时为真