Tsql 选择两个字符串符之间的数据范围
我想选择两个字符串值AAA和DDD之间的数据。有数据超出AAA和DDD的范围,我不想要。任何想法。谢谢Tsql 选择两个字符串符之间的数据范围,tsql,Tsql,我想选择两个字符串值AAA和DDD之间的数据。有数据超出AAA和DDD的范围,我不想要。任何想法。谢谢 根据我对你的问题的理解,看起来你想要AAA和DDD之间的行 桌子 质疑 您实际要选择哪些行?在“AAA”和“DDD”之间定义了什么?我在您的示例中没有看到任何介于这些值之间的字符串。谢谢。你的语法符合我的要求。 DECLARE @t TABLE (Id INT, FileN VARCHAR(25), Col1 VARCHAR(255)) INSERT INTO @t VALUES (1,'ee
根据我对你的问题的理解,看起来你想要AAA和DDD之间的行 桌子 质疑
您实际要选择哪些行?在“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