SQL 同时查询出目标数据的前后两条数据 ####################100%结贴

t101lian 2013-09-23 05:18:56
如下图, 我的查询语句是:
select  *  from oplogsTb a  where a.i_datetime > '2013-07-07' and a.i_op_id like '%转帐%'

现在还想同时查询出下面所有数据的前后两条,例如图片中第一条数据ID 是 10500,我还需要查询出 ID为10499和10501的,。 本想用abs 去实现,还是不行,, 等大牛
...全文
2921 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
t101lian 2013-09-24
  • 打赏
  • 举报
回复
引用 23 楼 t101lian 的回复:
唯有加分来感觉两位版主。。
感谢。。 感谢
bufeng711 2013-09-24
  • 打赏
  • 举报
回复
ORACLE 里面有LAG 和 LEAD 函数可以直接使用,是用来计算该条数据的位移量,可以自己指定该条数据的具体前N行数据
t101lian 2013-09-23
  • 打赏
  • 举报
回复
唯有加分来感觉两位版主。。
t101lian 2013-09-23
  • 打赏
  • 举报
回复
引用 20 楼 fredrickhu 的回复:
sselect
 b.* 
from
 oplogsTb a,oplogsTb b
where
 a.i_datetime > '2013-07-07' and  a.i_op_id like '%转帐%'
and
 abs(a.id-b.id)<=1
谢谢大牛, 再弱弱的请问下,我要加 distinct 怎么报错啦, 应该加哪里?
t101lian 2013-09-23
  • 打赏
  • 举报
回复
引用 19 楼 DBA_Huangzj 的回复:
select 11040,'转帐:出金','2013-08-16','11:30:55.503' union ALL select 11041,'转帐:出金','2013-08-17','11:30:55.503'我在这里加了一条测试数据,是可以查出来的
这么多测试数据,辛苦大牛啦,
--小F-- 2013-09-23
  • 打赏
  • 举报
回复
sselect
 b.* 
from
 oplogsTb a,oplogsTb b
where
 a.i_datetime > '2013-07-07' and  a.i_op_id like '%转帐%'
and
 abs(a.id-b.id)<=1
發糞塗牆 2013-09-23
  • 打赏
  • 举报
回复
select 11040,'转帐:出金','2013-08-16','11:30:55.503' union ALL select 11041,'转帐:出金','2013-08-17','11:30:55.503'我在这里加了一条测试数据,是可以查出来的
發糞塗牆 2013-09-23
  • 打赏
  • 举报
回复
你把那个日期改成变量,加上自己的条件就可以了
----------------------------------------------------------------
-- Author  :DBA_Huangzj(發糞塗牆)
-- Date    :2013-09-23 17:47:34
-- Version:
--      Microsoft SQL Server 2014 (CTP1) - 11.0.9120.5 (X64) 
--	Jun 10 2013 20:09:10 
--	Copyright (c) Microsoft Corporation
--	Enterprise Evaluation Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: ) (Hypervisor)
--
----------------------------------------------------------------
--> 测试数据:[T]
if object_id('[T]') is not null drop table [T]
go 
create table [T]([id] int,[i_op_id] varchar(9),[i_datetime] varchar(10),[i_op_situs_no] datetime)
insert [T]
select 10500,'转帐:入金','2013-08-02',' 16:36:02.623' union all
select 10501,'转帐:入金','2013-08-02',' 16:39:45.233' union all
select 10502,'转帐:出金','2013-08-02','16:44:36.733' union all
select 10503,'转帐:入金','2013-08-02',' 16:45:58.357' union all
select 10504,'转帐:出金','2013-08-02','16:46:10.873' union all
select 10505,'转帐:入金','2013-08-02',' 16:54:46.357' union all
select 10506,'转帐:出金','2013-08-02','16:55:12.937' union all
select 10507,'转帐:入金','2013-08-02',' 16:58:17.547' union all
select 10605,'转帐:入金','2013-08-05',' 10:37:56.437' union all
select 10606,'转帐:入金','2013-08-05',' 10:45:54.467' union all
select 10607,'转帐:出金','2013-08-05','10:49:35.107' union all
select 10608,'转帐:出金','2013-08-05','10:49:51.187' union all
select 10609,'转帐:出金','2013-08-05','10:50:01.217' union all
select 10734,'转帐:入金','2013-08-08',' 10:31:58.680' union all
select 10735,'转帐:出金','2013-08-08','10:33:44.543' union all
select 10736,'转帐:出金','2013-08-08','10:34:03.610' union all
select 10742,'转帐:入金','2013-08-08',' 13:48:15.300' union all
select 10743,'转帐:入金','2013-08-08',' 14:01:10.020' union all
select 10744,'转帐:入金','2013-08-08',' 14:01:19.007' union all
select 10745,'转帐:入金','2013-08-08',' 14:02:11.123' union all
select 10746,'转帐:入金','2013-08-08',' 14:02:28.673' union all
select 10747,'转帐:入金','2013-08-08',' 14:07:43.147' union all
select 10748,'转帐:入金','2013-08-08',' 14:08:02.760' union all
select 10749,'转帐:入金','2013-08-08',' 14:08:17.747' union all
select 10751,'转帐:出金','2013-08-08','14:11:34.253' union all
select 10752,'转帐:出金','2013-08-08','14:14:56.310' union all
select 10754,'转帐:入金','2013-08-08',' 14:33:37.460' union all
select 10756,'转帐:出金','2013-08-08','14:34:48.453' union all
select 10758,'转帐:入金','2013-08-08',' 15:03:34.820' union all
select 10760,'转帐:入金','2013-08-08 ','15:03:52.790' union all
select 10762,'转帐:出金','2013-08-08','15:21:00.213' union all
select 10764,'转帐:入金','2013-08-08 ','15:22:48.507' union all
select 10954,'转帐:入金','2013-08-15',' 10:12:39.690' union all
select 10956,'转帐:出金','2013-08-15','10:14:10.577' union all
select 10979,'转帐:入金','2013-08-15',' 10:33:41.383' union all
select 10981,'转帐:出金','2013-08-15','10:34:47.783' union all
select 11030,'转帐:入金','2013-08-16',' 11:06:44.260' union all
select 11031,'转帐:入金','2013-08-16 ','11:06:45.683' union all
select 11032,'转帐:入金','2013-08-16',' 11:06:47.653' union all
select 11034,'转帐:入金','2013-08-16',' 11:08:17.360' union all
select 11036,'转帐:入金','2013-08-16',' 11:08:21.267' union all
select 11040,'转帐:出金','2013-08-16','11:30:55.503' union ALL

select 11041,'转帐:出金','2013-08-17','11:30:55.503'union all
select 11050,'转帐:入金','2013-08-16 ','17:32:26.527' union all
select 11195,'转帐:出金','2013-08-21','10:32:09.730' union all
select 11210,'转帐:入金','2013-08-21 ','15:17:05.060' union all
select 11212,'转帐:出金','2013-08-21','15:23:49.370' union all
select 11214,'转帐:入金','2013-08-21 ','15:57:10.183' union all
select 11268,'转帐:入金','2013-08-22',' 15:13:45.933' union all
select 11270,'转帐:入金','2013-08-22 ','16:34:04.620' union all
select 11272,'转帐:出金','2013-08-22','16:34:46.717' union all
select 11274,'转帐:出金','2013-08-22','16:44:39.747' union all
select 11406,'转帐:入金','2013-08-26',' 17:01:10.507' union all
select 11537,'转帐:入金','2013-08-30',' 11:08:16.970' union all
select 11541,'转帐:出金','2013-08-30','11:10:38.833' union all
select 11697,'转帐:入金','2013-09-04','15:19:03.453'
--------------开始查询--------------------------

select * from [T]a
WHERE EXISTS(SELECT 1 FROM (SELECT id FROM [t] where i_datetime BETWEEN '2013-08-16' AND '2013-08-16') b WHERE a.id BETWEEN b.id-1 AND b.id+1)

--select * from [T]a

----------------结果----------------------------
/* 


*/
t101lian 2013-09-23
  • 打赏
  • 举报
回复
引用 15 楼 fredrickhu 的回复:
[quote=引用 13 楼 t101lian 的回复:] 10500 转帐: 入金 2013-08-02 16:36:02.623 NULL NULL 10501 转帐: 入金 2013-08-02 16:39:45.233 NULL NULL 10502 转帐:出金 2013-08-02 16:44:36.733 NULL NULL 10503 转帐: 入金 2013-08-02 16:45:58.357 NULL NULL 10504 转帐:出金 2013-08-02 16:46:10.873 NULL NULL 10505 转帐: 入金 2013-08-02 16:54:46.357 NULL NULL 10506 转帐:出金 2013-08-02 16:55:12.937 NULL NULL 10507 转帐: 入金 2013-08-02 16:58:17.547 NULL NULL 10605 转帐: 入金 2013-08-05 10:37:56.437 NULL NULL 10606 转帐: 入金 2013-08-05 10:45:54.467 NULL NULL 10607 转帐:出金 2013-08-05 10:49:35.107 NULL NULL 10608 转帐:出金 2013-08-05 10:49:51.187 NULL NULL 10609 转帐:出金 2013-08-05 10:50:01.217 NULL NULL 10734 转帐: 入金 2013-08-08 10:31:58.680 NULL NULL 10735 转帐:出金 2013-08-08 10:33:44.543 NULL NULL 10736 转帐:出金 2013-08-08 10:34:03.610 NULL NULL 10742 转帐: 入金 2013-08-08 13:48:15.300 NULL NULL 10743 转帐: 入金 2013-08-08 14:01:10.020 NULL NULL 10744 转帐: 入金 2013-08-08 14:01:19.007 NULL NULL 10745 转帐: 入金 2013-08-08 14:02:11.123 NULL NULL 10746 转帐: 入金 2013-08-08 14:02:28.673 NULL NULL 10747 转帐: 入金 2013-08-08 14:07:43.147 NULL NULL 10748 转帐: 入金 2013-08-08 14:08:02.760 NULL NULL 10749 转帐: 入金 2013-08-08 14:08:17.747 NULL NULL 10751 转帐:出金 2013-08-08 14:11:34.253 NULL NULL 10752 转帐:出金 2013-08-08 14:14:56.310 NULL NULL 10754 转帐: 入金 2013-08-08 14:33:37.460 NULL NULL 10756 转帐:出金 2013-08-08 14:34:48.453 NULL NULL 10758 转帐: 入金 2013-08-08 15:03:34.820 NULL NULL 10760 转帐: 入金 2013-08-08 15:03:52.790 NULL NULL 10762 转帐:出金 2013-08-08 15:21:00.213 NULL NULL 10764 转帐: 入金 2013-08-08 15:22:48.507 NULL NULL 10954 转帐: 入金 2013-08-15 10:12:39.690 NULL NULL 10956 转帐:出金 2013-08-15 10:14:10.577 NULL NULL 10979 转帐: 入金 2013-08-15 10:33:41.383 NULL NULL 10981 转帐:出金 2013-08-15 10:34:47.783 NULL NULL 11030 转帐: 入金 2013-08-16 11:06:44.260 NULL NULL 11031 转帐: 入金 2013-08-16 11:06:45.683 NULL NULL 11032 转帐: 入金 2013-08-16 11:06:47.653 NULL NULL 11034 转帐: 入金 2013-08-16 11:08:17.360 NULL NULL 11036 转帐: 入金 2013-08-16 11:08:21.267 NULL NULL 11040 转帐:出金 2013-08-16 11:30:55.503 NULL NULL 11050 转帐: 入金 2013-08-16 17:32:26.527 NULL NULL 11195 转帐:出金 2013-08-21 10:32:09.730 NULL NULL 11210 转帐: 入金 2013-08-21 15:17:05.060 NULL NULL 11212 转帐:出金 2013-08-21 15:23:49.370 NULL NULL 11214 转帐: 入金 2013-08-21 15:57:10.183 NULL NULL 11268 转帐: 入金 2013-08-22 15:13:45.933 NULL NULL 11270 转帐: 入金 2013-08-22 16:34:04.620 NULL NULL 11272 转帐:出金 2013-08-22 16:34:46.717 NULL NULL 11274 转帐:出金 2013-08-22 16:44:39.747 NULL NULL 11406 转帐: 入金 2013-08-26 17:01:10.507 NULL NULL 11537 转帐: 入金 2013-08-30 11:08:16.970 NULL NULL 11541 转帐:出金 2013-08-30 11:10:38.833 NULL NULL 11697 转帐: 入金 2013-09-04 15:19:03.453 NULL NULL
你这个所需要的结果是?[/quote] 上面数据中有些ID 已经是连在一起的,再加前面两条就重复啦, 你就看后面就条数据, 比如 ID 为11541的和11697的,我现在还要查询 出id 11540,11542,11696,11698
t101lian 2013-09-23
  • 打赏
  • 举报
回复
引用 15 楼 fredrickhu 的回复:
[quote=引用 13 楼 t101lian 的回复:] 10500 转帐: 入金 2013-08-02 16:36:02.623 NULL NULL 10501 转帐: 入金 2013-08-02 16:39:45.233 NULL NULL 10502 转帐:出金 2013-08-02 16:44:36.733 NULL NULL 10503 转帐: 入金 2013-08-02 16:45:58.357 NULL NULL 10504 转帐:出金 2013-08-02 16:46:10.873 NULL NULL 10505 转帐: 入金 2013-08-02 16:54:46.357 NULL NULL 10506 转帐:出金 2013-08-02 16:55:12.937 NULL NULL 10507 转帐: 入金 2013-08-02 16:58:17.547 NULL NULL 10605 转帐: 入金 2013-08-05 10:37:56.437 NULL NULL 10606 转帐: 入金 2013-08-05 10:45:54.467 NULL NULL 10607 转帐:出金 2013-08-05 10:49:35.107 NULL NULL 10608 转帐:出金 2013-08-05 10:49:51.187 NULL NULL 10609 转帐:出金 2013-08-05 10:50:01.217 NULL NULL 10734 转帐: 入金 2013-08-08 10:31:58.680 NULL NULL 10735 转帐:出金 2013-08-08 10:33:44.543 NULL NULL 10736 转帐:出金 2013-08-08 10:34:03.610 NULL NULL 10742 转帐: 入金 2013-08-08 13:48:15.300 NULL NULL 10743 转帐: 入金 2013-08-08 14:01:10.020 NULL NULL 10744 转帐: 入金 2013-08-08 14:01:19.007 NULL NULL 10745 转帐: 入金 2013-08-08 14:02:11.123 NULL NULL 10746 转帐: 入金 2013-08-08 14:02:28.673 NULL NULL 10747 转帐: 入金 2013-08-08 14:07:43.147 NULL NULL 10748 转帐: 入金 2013-08-08 14:08:02.760 NULL NULL 10749 转帐: 入金 2013-08-08 14:08:17.747 NULL NULL 10751 转帐:出金 2013-08-08 14:11:34.253 NULL NULL 10752 转帐:出金 2013-08-08 14:14:56.310 NULL NULL 10754 转帐: 入金 2013-08-08 14:33:37.460 NULL NULL 10756 转帐:出金 2013-08-08 14:34:48.453 NULL NULL 10758 转帐: 入金 2013-08-08 15:03:34.820 NULL NULL 10760 转帐: 入金 2013-08-08 15:03:52.790 NULL NULL 10762 转帐:出金 2013-08-08 15:21:00.213 NULL NULL 10764 转帐: 入金 2013-08-08 15:22:48.507 NULL NULL 10954 转帐: 入金 2013-08-15 10:12:39.690 NULL NULL 10956 转帐:出金 2013-08-15 10:14:10.577 NULL NULL 10979 转帐: 入金 2013-08-15 10:33:41.383 NULL NULL 10981 转帐:出金 2013-08-15 10:34:47.783 NULL NULL 11030 转帐: 入金 2013-08-16 11:06:44.260 NULL NULL 11031 转帐: 入金 2013-08-16 11:06:45.683 NULL NULL 11032 转帐: 入金 2013-08-16 11:06:47.653 NULL NULL 11034 转帐: 入金 2013-08-16 11:08:17.360 NULL NULL 11036 转帐: 入金 2013-08-16 11:08:21.267 NULL NULL 11040 转帐:出金 2013-08-16 11:30:55.503 NULL NULL 11050 转帐: 入金 2013-08-16 17:32:26.527 NULL NULL 11195 转帐:出金 2013-08-21 10:32:09.730 NULL NULL 11210 转帐: 入金 2013-08-21 15:17:05.060 NULL NULL 11212 转帐:出金 2013-08-21 15:23:49.370 NULL NULL 11214 转帐: 入金 2013-08-21 15:57:10.183 NULL NULL 11268 转帐: 入金 2013-08-22 15:13:45.933 NULL NULL 11270 转帐: 入金 2013-08-22 16:34:04.620 NULL NULL 11272 转帐:出金 2013-08-22 16:34:46.717 NULL NULL 11274 转帐:出金 2013-08-22 16:44:39.747 NULL NULL 11406 转帐: 入金 2013-08-26 17:01:10.507 NULL NULL 11537 转帐: 入金 2013-08-30 11:08:16.970 NULL NULL 11541 转帐:出金 2013-08-30 11:10:38.833 NULL NULL 11697 转帐: 入金 2013-09-04 15:19:03.453 NULL NULL
你这个所需要的结果是?[/quote] 就是 上面图片中的数据,截图只是这里的一部分, 我现在要查询出来的是,这里的数据加这里每一条的前后两条
--小F-- 2013-09-23
  • 打赏
  • 举报
回复
引用 13 楼 t101lian 的回复:
10500 转帐: 入金 2013-08-02 16:36:02.623 NULL NULL 10501 转帐: 入金 2013-08-02 16:39:45.233 NULL NULL 10502 转帐:出金 2013-08-02 16:44:36.733 NULL NULL 10503 转帐: 入金 2013-08-02 16:45:58.357 NULL NULL 10504 转帐:出金 2013-08-02 16:46:10.873 NULL NULL 10505 转帐: 入金 2013-08-02 16:54:46.357 NULL NULL 10506 转帐:出金 2013-08-02 16:55:12.937 NULL NULL 10507 转帐: 入金 2013-08-02 16:58:17.547 NULL NULL 10605 转帐: 入金 2013-08-05 10:37:56.437 NULL NULL 10606 转帐: 入金 2013-08-05 10:45:54.467 NULL NULL 10607 转帐:出金 2013-08-05 10:49:35.107 NULL NULL 10608 转帐:出金 2013-08-05 10:49:51.187 NULL NULL 10609 转帐:出金 2013-08-05 10:50:01.217 NULL NULL 10734 转帐: 入金 2013-08-08 10:31:58.680 NULL NULL 10735 转帐:出金 2013-08-08 10:33:44.543 NULL NULL 10736 转帐:出金 2013-08-08 10:34:03.610 NULL NULL 10742 转帐: 入金 2013-08-08 13:48:15.300 NULL NULL 10743 转帐: 入金 2013-08-08 14:01:10.020 NULL NULL 10744 转帐: 入金 2013-08-08 14:01:19.007 NULL NULL 10745 转帐: 入金 2013-08-08 14:02:11.123 NULL NULL 10746 转帐: 入金 2013-08-08 14:02:28.673 NULL NULL 10747 转帐: 入金 2013-08-08 14:07:43.147 NULL NULL 10748 转帐: 入金 2013-08-08 14:08:02.760 NULL NULL 10749 转帐: 入金 2013-08-08 14:08:17.747 NULL NULL 10751 转帐:出金 2013-08-08 14:11:34.253 NULL NULL 10752 转帐:出金 2013-08-08 14:14:56.310 NULL NULL 10754 转帐: 入金 2013-08-08 14:33:37.460 NULL NULL 10756 转帐:出金 2013-08-08 14:34:48.453 NULL NULL 10758 转帐: 入金 2013-08-08 15:03:34.820 NULL NULL 10760 转帐: 入金 2013-08-08 15:03:52.790 NULL NULL 10762 转帐:出金 2013-08-08 15:21:00.213 NULL NULL 10764 转帐: 入金 2013-08-08 15:22:48.507 NULL NULL 10954 转帐: 入金 2013-08-15 10:12:39.690 NULL NULL 10956 转帐:出金 2013-08-15 10:14:10.577 NULL NULL 10979 转帐: 入金 2013-08-15 10:33:41.383 NULL NULL 10981 转帐:出金 2013-08-15 10:34:47.783 NULL NULL 11030 转帐: 入金 2013-08-16 11:06:44.260 NULL NULL 11031 转帐: 入金 2013-08-16 11:06:45.683 NULL NULL 11032 转帐: 入金 2013-08-16 11:06:47.653 NULL NULL 11034 转帐: 入金 2013-08-16 11:08:17.360 NULL NULL 11036 转帐: 入金 2013-08-16 11:08:21.267 NULL NULL 11040 转帐:出金 2013-08-16 11:30:55.503 NULL NULL 11050 转帐: 入金 2013-08-16 17:32:26.527 NULL NULL 11195 转帐:出金 2013-08-21 10:32:09.730 NULL NULL 11210 转帐: 入金 2013-08-21 15:17:05.060 NULL NULL 11212 转帐:出金 2013-08-21 15:23:49.370 NULL NULL 11214 转帐: 入金 2013-08-21 15:57:10.183 NULL NULL 11268 转帐: 入金 2013-08-22 15:13:45.933 NULL NULL 11270 转帐: 入金 2013-08-22 16:34:04.620 NULL NULL 11272 转帐:出金 2013-08-22 16:34:46.717 NULL NULL 11274 转帐:出金 2013-08-22 16:44:39.747 NULL NULL 11406 转帐: 入金 2013-08-26 17:01:10.507 NULL NULL 11537 转帐: 入金 2013-08-30 11:08:16.970 NULL NULL 11541 转帐:出金 2013-08-30 11:10:38.833 NULL NULL 11697 转帐: 入金 2013-09-04 15:19:03.453 NULL NULL
你这个所需要的结果是?
t101lian 2013-09-23
  • 打赏
  • 举报
回复
列太多, 我只取了前面几列
t101lian 2013-09-23
  • 打赏
  • 举报
回复
10500 转帐: 入金 2013-08-02 16:36:02.623 NULL NULL 10501 转帐: 入金 2013-08-02 16:39:45.233 NULL NULL 10502 转帐:出金 2013-08-02 16:44:36.733 NULL NULL 10503 转帐: 入金 2013-08-02 16:45:58.357 NULL NULL 10504 转帐:出金 2013-08-02 16:46:10.873 NULL NULL 10505 转帐: 入金 2013-08-02 16:54:46.357 NULL NULL 10506 转帐:出金 2013-08-02 16:55:12.937 NULL NULL 10507 转帐: 入金 2013-08-02 16:58:17.547 NULL NULL 10605 转帐: 入金 2013-08-05 10:37:56.437 NULL NULL 10606 转帐: 入金 2013-08-05 10:45:54.467 NULL NULL 10607 转帐:出金 2013-08-05 10:49:35.107 NULL NULL 10608 转帐:出金 2013-08-05 10:49:51.187 NULL NULL 10609 转帐:出金 2013-08-05 10:50:01.217 NULL NULL 10734 转帐: 入金 2013-08-08 10:31:58.680 NULL NULL 10735 转帐:出金 2013-08-08 10:33:44.543 NULL NULL 10736 转帐:出金 2013-08-08 10:34:03.610 NULL NULL 10742 转帐: 入金 2013-08-08 13:48:15.300 NULL NULL 10743 转帐: 入金 2013-08-08 14:01:10.020 NULL NULL 10744 转帐: 入金 2013-08-08 14:01:19.007 NULL NULL 10745 转帐: 入金 2013-08-08 14:02:11.123 NULL NULL 10746 转帐: 入金 2013-08-08 14:02:28.673 NULL NULL 10747 转帐: 入金 2013-08-08 14:07:43.147 NULL NULL 10748 转帐: 入金 2013-08-08 14:08:02.760 NULL NULL 10749 转帐: 入金 2013-08-08 14:08:17.747 NULL NULL 10751 转帐:出金 2013-08-08 14:11:34.253 NULL NULL 10752 转帐:出金 2013-08-08 14:14:56.310 NULL NULL 10754 转帐: 入金 2013-08-08 14:33:37.460 NULL NULL 10756 转帐:出金 2013-08-08 14:34:48.453 NULL NULL 10758 转帐: 入金 2013-08-08 15:03:34.820 NULL NULL 10760 转帐: 入金 2013-08-08 15:03:52.790 NULL NULL 10762 转帐:出金 2013-08-08 15:21:00.213 NULL NULL 10764 转帐: 入金 2013-08-08 15:22:48.507 NULL NULL 10954 转帐: 入金 2013-08-15 10:12:39.690 NULL NULL 10956 转帐:出金 2013-08-15 10:14:10.577 NULL NULL 10979 转帐: 入金 2013-08-15 10:33:41.383 NULL NULL 10981 转帐:出金 2013-08-15 10:34:47.783 NULL NULL 11030 转帐: 入金 2013-08-16 11:06:44.260 NULL NULL 11031 转帐: 入金 2013-08-16 11:06:45.683 NULL NULL 11032 转帐: 入金 2013-08-16 11:06:47.653 NULL NULL 11034 转帐: 入金 2013-08-16 11:08:17.360 NULL NULL 11036 转帐: 入金 2013-08-16 11:08:21.267 NULL NULL 11040 转帐:出金 2013-08-16 11:30:55.503 NULL NULL 11050 转帐: 入金 2013-08-16 17:32:26.527 NULL NULL 11195 转帐:出金 2013-08-21 10:32:09.730 NULL NULL 11210 转帐: 入金 2013-08-21 15:17:05.060 NULL NULL 11212 转帐:出金 2013-08-21 15:23:49.370 NULL NULL 11214 转帐: 入金 2013-08-21 15:57:10.183 NULL NULL 11268 转帐: 入金 2013-08-22 15:13:45.933 NULL NULL 11270 转帐: 入金 2013-08-22 16:34:04.620 NULL NULL 11272 转帐:出金 2013-08-22 16:34:46.717 NULL NULL 11274 转帐:出金 2013-08-22 16:44:39.747 NULL NULL 11406 转帐: 入金 2013-08-26 17:01:10.507 NULL NULL 11537 转帐: 入金 2013-08-30 11:08:16.970 NULL NULL 11541 转帐:出金 2013-08-30 11:10:38.833 NULL NULL 11697 转帐: 入金 2013-09-04 15:19:03.453 NULL NULL
發糞塗牆 2013-09-23
  • 打赏
  • 举报
回复
给点数据来我写
t101lian 2013-09-23
  • 打赏
  • 举报
回复
引用 7 楼 DBA_Huangzj 的回复:
----------------------------------------------------------------
-- Author  :DBA_Huangzj(發糞塗牆)
-- Date    :2013-09-23 17:32:38
-- Version:
--      Microsoft SQL Server 2014 (CTP1) - 11.0.9120.5 (X64) 
--	Jun 10 2013 20:09:10 
--	Copyright (c) Microsoft Corporation
--	Enterprise Evaluation Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: ) (Hypervisor)
--
----------------------------------------------------------------
--> 测试数据:[huang]
if object_id('[huang]') is not null drop table [huang]
go 
create table [huang]([id] int)
insert [huang]
select 1 union all
select 2 union all
select 3 union all
select 4 union all
select 5 union all
select 6 union all
select 7 union all
select 8
--------------开始查询--------------------------
DECLARE @id INT
SET @id=5
select * 
from [huang] a
WHERE id=@id 
UNION
SELECT *
FROM huang
WHERE id IN (@id-1,@id+1)
----------------结果----------------------------
/* 
id
-----------
4
5
6
*/
大牛, 你就帮人帮到低吧 , 我还是不知道SQL语句怎么写
發糞塗牆 2013-09-23
  • 打赏
  • 举报
回复
你如果没限定参数的话要用exists,给点测试数据用用,文本格式给出
t101lian 2013-09-23
  • 打赏
  • 举报
回复
查询出来的结果是一样的
t101lian 2013-09-23
  • 打赏
  • 举报
回复
引用 7 楼 DBA_Huangzj 的回复:
----------------------------------------------------------------
-- Author  :DBA_Huangzj(發糞塗牆)
-- Date    :2013-09-23 17:32:38
-- Version:
--      Microsoft SQL Server 2014 (CTP1) - 11.0.9120.5 (X64) 
--	Jun 10 2013 20:09:10 
--	Copyright (c) Microsoft Corporation
--	Enterprise Evaluation Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: ) (Hypervisor)
--
----------------------------------------------------------------
--> 测试数据:[huang]
if object_id('[huang]') is not null drop table [huang]
go 
create table [huang]([id] int)
insert [huang]
select 1 union all
select 2 union all
select 3 union all
select 4 union all
select 5 union all
select 6 union all
select 7 union all
select 8
--------------开始查询--------------------------
DECLARE @id INT
SET @id=5
select * 
from [huang] a
WHERE id=@id 
UNION
SELECT *
FROM huang
WHERE id IN (@id-1,@id+1)
----------------结果----------------------------
/* 
id
-----------
4
5
6
*/
噢 , 我直接这样写不行..
select  *   from oplogstb a left join (select id from oplogsTb where i_datetime > '2013-07-07' and  i_op_id like '%转帐%')b
on a.id=b.id where a.id in(b.id-1,b.id,b.id+1)
發糞塗牆 2013-09-23
  • 打赏
  • 举报
回复
----------------------------------------------------------------
-- Author  :DBA_Huangzj(發糞塗牆)
-- Date    :2013-09-23 17:32:38
-- Version:
--      Microsoft SQL Server 2014 (CTP1) - 11.0.9120.5 (X64) 
--	Jun 10 2013 20:09:10 
--	Copyright (c) Microsoft Corporation
--	Enterprise Evaluation Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: ) (Hypervisor)
--
----------------------------------------------------------------
--> 测试数据:[huang]
if object_id('[huang]') is not null drop table [huang]
go 
create table [huang]([id] int)
insert [huang]
select 1 union all
select 2 union all
select 3 union all
select 4 union all
select 5 union all
select 6 union all
select 7 union all
select 8
--------------开始查询--------------------------
DECLARE @id INT
SET @id=5
select * 
from [huang] a
WHERE id=@id 
UNION
SELECT *
FROM huang
WHERE id IN (@id-1,@id+1)
----------------结果----------------------------
/* 
id
-----------
4
5
6
*/
發糞塗牆 2013-09-23
  • 打赏
  • 举报
回复
@id是我假定你要传入的值,比如你题目中的10500,你是要连图中的数据都查出来是吧?
加载更多回复(5)

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧