用戶輸入兩個數據,這是一個間隔期,並在數據庫中存儲爲INT。 假設我有如下的數據:允許未在SQL Server中使用查詢輸入數據
Table :cheque_book_mcg
id acc_no cheq_bk_no cheq_no_frm cheq_no_to sch_id no_from no_to
401 010000001 285 01029101 01029125 010 29101 29125
402 001000467 277 00130326 00130350 001 30326 30350
403 001000467 54 00122252 00122275 001 22252 22275
404 001000467 1149 00167551 00167575 001 67551 67575
405 003000016 45 00322301 00322325 003 22301 22325
406 001000468 46 00122326 00122350 001 22326 22350
407 001000470 335 00122401 00122425 001 22401 22425
408 001000471 848 00164651 00164675 001 64651 64675
409 001000471 1346 00145476 00145500 001 45476 45500
用戶可以進入的間隔(no_from和no_to)如需要的話,這是不重複條目。 這樣,在當前上下文中,用戶可以輸入(no_from = 1和no_to = 10),然後如果用戶輸入(21和30),它也必須是有效的,並且之間也存在間隔差距,所以之後如果用戶想要添加(11和20)的數據,應該是有效的,參考上面輸入的數據,用戶也可以輸入剩餘的時間間隔,上表中最高的時間間隔是(67551和67575),所以用戶也可以輸入從(67576等)開始的時間間隔,用戶也可以輸入低於上面輸入的時間間隔的時間間隔以及輸入數據之間的間隔時間。但不應該重複,間隔。我寫了一個查詢,如下所示:
SELECT
CASE WHEN ((select MAX(id) from cheque_book_mcg WHERE no_to < 1) = (select MIN(id) from cheque_book_mcg WHERE no_from <= 20))
THEN
'yes'
ELSE
'no'
END as valid
這適用於進入該表提供的數據之間的時間間隔,但較低的間隔比以前輸入的時間間隔下無法正常工作和較高的間隔不工作高於先前輸入的時間間隔。
如何實現這個目標?
是否要上一個是否有重疊的範圍?所以如果你的範圍(1,20)存在,範圍(11,30)應該被拒絕? –
是的,就是這樣。 – SudeepShakya