sql語句查詢,某一記錄上下相鄰的兩條記錄。怎麼寫

時間 2022-03-12 16:35:03

1樓:

select * from news a

where news_id > 12345 and not exists(select 1 from news where news_id > 12345 and

news_id < a.id )

or news_id < 12345 and not exists(select 1 from news where news_id < 12345 and

news_id > a.id )

如果不需要用一條語句寫出來,那分開寫的話,效率會好一些,這樣寫必須用一個or關鍵字

分開寫:

select max(news_id) from news where news_id < 12345

select min(news_id) from news where news_id > 12345

2樓:匿名使用者

news_id 是 int 嗎?

是的話:

select * from news where news_id =12345+1 or news_id=12345-1

12345應該是傳進來的值吧

select * from news where news_id = 變數+1 or news_id=變數-1

3樓:匿名使用者

簡單的:

select top 1 * from id where news_id>12345

select top 1 * from id where news_id<12345

4樓:

排序規則是什麼? 時間?id?

mysql 求當前時間上下相鄰兩條資料的sql語句怎麼寫

5樓:高樓望盡天

mysql 求當前時間上下相鄰兩條資料的sql語句怎麼寫mysql> set @last_id := -1;

query ok, 0 rows affected (0.00 sec)

mysql> select id, a, b, result-> from

-> (

-> select

-> table1.*,

-> @last_id,

-> if(@last_id < 0, null, id - @last_id) as result,

-> @last_id := id-> from

-> table1

-> ) as tmp

-> ;

+----+------+------+--------+| id | a | b | result |+----+------+------+--------+| 1 | 2 | 1 | null || 21 | 1 | 1 | 20 || 33 | 3 | 2 | 12 |+----+------+------+--------+3 rows in set (0.00 sec)

查詢一條或兩條記錄的sql語句怎麼寫

6樓:匿名使用者

只查最大:select top 1 * from news order by nid desc

查出全部並按nid從大到小排序,取掉top 1就行了。

7樓:朱海陽

select top 1 from news ordey by nid desc

8樓:

select * from news order by nid desc limit 1

9樓:匿名使用者

你是不是想 如果使用者輸入資料了

那麼查詢使用者指定的那麼

如果使用者沒有輸入

那麼查詢 nid 最大的那個?

用sql語句寫查詢介於兩個時間之間的記錄應該怎麼寫

10樓:冰悅精彩

您好:附上sql server的兩種寫法

--1select *

from 表

where 時間欄位》'開始時間' and 時間欄位<'結束時間'

--2select *

from 表

where bwteen '開始時間' and '結束時間'

歡迎追問。

sql語句怎麼寫?a表和b表根據條件匹配查詢出a表兩條相同記錄,如何把b

11樓:匿名使用者

sql語句怎麼寫?a表和b表根據條件匹配查詢出a表兩條相同記錄,如何把b

select *from a inner join b on a.code=b.codewhere b.time<'2013-12-1'

資料庫裡2條記錄相同。我想取其中一個時間最新的sql語句怎麼寫?

12樓:匿名使用者

你的表裡有沒有欄位是表示更新時間的呢? 如果沒有, 那就沒法. 如果有, 那就對更新時間進行排序取第一條.

13樓:匿名使用者

如果有自動增長的id :

select top 1 from news where classid = 10 order by id desc沒有id的話專:select classid from news where classid = 10 where addtime = 『屬2010-7-14』

14樓:

select top 1 * from 表 order by 日期 desc

//如有日期這個欄位沒有的話就id,就是你設的自增長的欄位,如果都

內沒有,看看你這張容表的主鍵有什麼順序,如果再沒有,你去插入一列自增長的欄位吧(int型的)...

求sql語句:查詢某個值介於兩個欄位值之間的記錄。

15樓:灰馬無鞍

誰說between 針對一個欄位。。。

你select * from 表名 where 725 between 最低值 and 最高值看看

16樓:匿名使用者

操作方法:select * from 表名 where 725 between 最低值 and 最高值。按這個輸入就可以了。

拓展:1、sql語言,是結構化查詢語言(structured query language)的簡稱。sql語言是一種資料庫查詢和程式設計語言,用於存取資料以及查詢、更新和管理關聯式資料庫系統;同時也是資料庫指令碼檔案的副檔名。

2、sql語言是高階的非過程化程式語言,允許使用者在高層資料結構上工作。它不要求使用者指定對資料的存放方法,也不需要使用者瞭解具體的資料存放方式,所以具有完全不同底層結構的不同資料庫系統可以使用相同的結構化查詢語言作為資料輸入與管理的介面。sql語言語句可以巢狀,這使他具有極大的靈活性和強大的功能。

17樓:匿名使用者

比如查詢a欄位1到3的值

select * from table where a 1 between 3

18樓:白臨楓

between xx and xx

---sql: select * from f where 最低值<=725 and 最高值》=725

sql 查一週資料,每天兩條

19樓:智者總要千慮

select *

from 表名 a

where 日期列 in(select top 2 日期列 from 表名 b where cast(a.日期列 as date)=cast(b.日期列 as date) order by 日期列)

mysql語句如果利用limit查詢某一條之後的所有記錄

mysql 高版本 不支援 limit n 1 這個引數了 用一個很大的數來代替吧 比如 select from tt limit 450,999999999 1這個引數在早期版本支援,新版本的mysql已經不支援了。你可以把limit的第二個引數設一個很大的值就行了,比如 select from ...

求一條SQL語句,有關聯合查詢的

試試看這樣行不行 select 表b 學號 表a 姓名 isnull sum case 表b 學科 when n 語文 then 表b 分數 end 0 as 語文 isnull sum case 表b 學科 when n 數學 then 表b 分數 end 0 as 數學 isnull sum c...

sql 查詢資料表後 在統計某一列資料不重複的數量

小丁創業 統計第一列不相同的個數的操作方法和步驟如下 1 首先,建立測試表,如下圖所示。2 其次,完成上述步驟後,插入測試資料,如下圖所示。3 接著,完成上述步驟後,建立所需臨時表,如下圖所示。4 最後,完成上述步驟後,統計每一列不重複的資料量,如下圖所示。這樣,問題就解決了。 1 建立測試表,cr...