嗨即时通讯新的SQL查询我只知道简单的查询。 我的问题是有可能SELECT skipped check number EX2001,EX2002,EX2004
select result will show EX2003
。 在此先感谢,对不起我的英语。 你只能回答算法,生病尝试把它实现到SQL。 例如: SELECT * FROM SETTLEMENT WHERE checkno不在(在ex2001和ex2900之间) 是否可以这样?即时通讯使用MS SQL 2008.SQL查询知道跳过的数字
0
A
回答
0
create table sequence(st varchar(50))
insert into sequence values('EX2001');
insert into sequence values('EX2002');
insert into sequence values('EX2004');
insert into sequence values('EX2005');
insert into sequence values('EX2008');
假设你原来的表名是序列只有一个字段,您可以修改,按您的需求
尝试以下
DECLARE @all TABLE
(
st varchar(20)
)
declare @start int
declare @end int
declare @str varchar(20)
set @start=2000 //define starting point
set @end=2010 //define end point
while(@start<@end)
BEGIN
SET @[email protected]+1
set @str='EX'+cast(@start as varchar(20))
INSERT INTO @all VALUES (''[email protected]+'')
END
SELECT * from @all
except
select * from sequence
输出
st
EX2003
EX2006
EX2007
EX2009
EX2010
0
0
由于没有提到的SQL引擎,这个答案只对甲骨文11G
选择1:分层查询
CREATE TABLE TEST1 (A VARCHAR2 (9));
INSERT INTO
TEST1
VALUES
('EX2001');
INSERT INTO
TEST1
VALUES
('EX2002');
INSERT INTO
TEST1
VALUES
('EX2004');
COMMIT;
WITH TEST2
AS (SELECT
TO_NUMBER(SUBSTR (A,
3))
AS A
FROM
TEST1)
SELECT
MIN_A
- 1
+ LEVEL
FROM
(SELECT
MIN (A) MIN_A,
MAX (A) MAX_A
FROM
TEST2)
CONNECT BY
LEVEL <= MAX_A
- MIN_A
+ 1
MINUS
SELECT A FROM TEST2;
选项2:利用Oracle分析功能
WITH T
AS (SELECT
TO_NUMBER(SUBSTR (A,
3))
AS SNO,
SYSDATE AS SDATE
FROM
TEST1)
SELECT
SDATE,
SNO
+ 1
FIRST_MISSING,
DECODE (NEXT_SNO
- 1,
SNO
+ 1, TO_NUMBER (NULL),
NEXT_SNO
- 1)
LAST_MISSING
FROM
(SELECT
SDATE,
SNO,
LAG (SNO)
OVER (PARTITION BY SDATE
ORDER BY SNO)
LAST_SNO,
LEAD (SNO)
OVER (PARTITION BY SDATE
ORDER BY SNO)
NEXT_SNO
FROM
T)
WHERE
NVL (NEXT_SNO,
SNO
+ 1) <> SNO
+ 1;
+0
ty for reply,会用hierarchi进程 – Trutone
相关问题
- 1. 跳过在SQL Server中的子查询
- 2. NOTORM如何知道sql查询
- 3. 我不知道如何在SQL查询
- 4. 我想知道一些查询在sql
- 5. 查询在SQL SERVER跳过布尔
- 6. 跳过输入查询字符串
- 7. MySQL跳过空字符串查询?
- 8. 命名查询不知道
- 9. while循环跳过查询
- 10. 跳过慢查询日志
- 11. 未知的SQL查询
- 12. 不知道的DbContext如何创建SQL查询错误的表
- 13. Tinkerpop3跳不知道循环
- 14. 从管道跳过读取整数C中的值跳过
- 15. SQL:如何知道SELECT查询中匹配的值是什么?
- 16. 请让我知道这个问题与下面的SQL查询
- 17. SQL如何知道LINQtoSQL查询中@ p#的内容?
- 18. 不知道如何编写复杂的SQL查询
- 19. 如何知道查询所采用的sql连接大小?
- 20. 通过示例查询跳过原语?
- 21. SQL Server中ID更改后跳过第一行的查询
- 22. 如何跳过sql查询中的前n行
- 23. SQL /查询字符串不返回我知道存在的记录
- 24. 指定的查询不知道:byShipmentNumber
- 25. 查询不知道类的ontologie
- 26. Python跳过数字
- 27. Python SQL查询 - 未知列
- 28. SQL查询通知和GetDate()
- 29. SQL查询到已知
- 30. SQL查询的字母数字值
你可以在这里找到答案:http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html – fancyPants
哪些DBMS是你使用? Postgres的?甲骨文? –