2015-02-08 48 views
0

我剛剛閱讀了有關keyset paging的文章。這篇文章使用了PostgreSQL,並提到了一個有趣的方式來比較我以前從未見過的多列。如何在SQL Server和SQLite中執行此操作

看起來像這樣(3,2)>(2,5),這將返回true。它首先比較第一個數字,如果它們不相等,則返回結果。如果它們相等,則比較第二個數字。這在進行鍵集分頁時非常有用。

我無法弄清楚這是如何調用的。在實驗中我發現SQL Server和SQLite不支持這種比較方法。我需要在SQL Server和SQLite中都做同樣的事情。

回答

1

你可以用明確的邏輯做到這一點:

(a1 > b1 or a1 = b1 and a2 > b2) 

這符號在大多數其他數據庫不支持。

還有其他方法。如果數字很小,你可以這樣做:

a1*100000 + a2 > b1*100000 + b2 
+0

我不敢相信我是如何錯過這個的。這對我很好。謝謝! – Ivan 2015-02-08 15:07:15