tôi có một truy vấn sql:Làm thế nào để xác định vị trí của hàng trong tập kết quả sql?
select id, name from table order by name
kết quả trông như thế này:
52 arnold
33 berta
34 chris
47 doris
52 emil
cho một id cho = 47 làm thế nào tôi có thể xác định vị trí trong kết quả thiết lập? kết quả nên được 4 vì:
52 arnold
33 berta
34 chris
là trước (47 tuổi, Doris) và id = 41 là vào vị trí thứ 4 trong tập kết quả.
Cách thực hiện việc này trong SQL? Làm thế nào trong HQL? Trong ví dụ về phân trang, tôi có phải thực hiện 2 câu lệnh hoặc có giải pháp mà tôi có thể truy xuất chính xác cửa sổ có chứa hàng có id = 47 không?
PostgreSQL và java
làm thế nào để bạn đối phó với một tie? – brad
Tôi đoán rằng nó phụ thuộc vào những gì bạn muốn sử dụng để phá vỡ cà vạt.Bạn có thể thêm crieria bổ sung vào truy vấn phụ để phân biệt thêm tính toán 'rowpos' để không có mối quan hệ nào được tạo ra, hoặc thêm mệnh đề thứ tự bổ sung vào truy vấn bên ngoài để ngắt tie. –
Trường hợp này có nhanh hơn giải pháp ROW_NUMBER ngay cả khi DB của bạn cung cấp ROW_NUMBER không? Tôi giả sử theo cách này là O (n) so với O (n * log (n)) (nhận được số hàng) – Flati