Tôi đang cố gắng tìm ra cách chọn một nửa bản ghi trong đó ID không có giá trị. Tôi muốn một nửa vì tôi sẽ sử dụng tập hợp kết quả đó để cập nhật một trường ID khác. Sau đó, tôi sẽ cập nhật phần còn lại với một giá trị khác cho trường ID đó. Vì vậy, về cơ bản tôi muốn cập nhật một nửa bản ghi someFieldID với một số và phần còn lại với một số khác chia tách bản cập nhật cơ bản giữa hai giá trị cho someFieldID trường tôi muốn cập nhật.Chỉ chọn một nửa bản ghi
Trả lời
Trong oracle, bạn có thể sử dụng các mẫu ROWNUM psuedocolumn. Tôi tin rằng trong máy chủ sql bạn có thể sử dụng TOP. Ví dụ:
select TOP 50 PERCENT * from table
Bạn có thể chọn theo phần trăm:
SELECT TOP 50 PERCENT *fields* FROM YourTable WHERE ...
update x set [email protected] from (select top 50 percent * from table where id is null) x
Các SQL sau sẽ trả lại col_ids của nửa đầu của bảng.
SELECT col_id FROM table
WHERE rownum <= (SELECT count(col_id)/2 FROM table);
Nếu tổng số col_ids là một số lẻ thì bạn sẽ nhận được nửa đầu - 1. Điều này là do, ví dụ, chúng tôi có tổng cộng 51 hồ sơ, số lượng (col_id)/2 lợi nhuận 25,5, và vì không có sự biểu thị bằng kết quả này, chúng tôi nhận được mọi thứ bằng 25 và thấp hơn. Điều đó có nghĩa là 26 người khác không được trả lại.
Tuy nhiên, tôi đã không nhìn thấy làm việc tuyên bố ngược lại:
SELECT col_id FROM table
WHERE rownum > (SELECT count(col_id)/2 FROM table);
Vì vậy, nếu bạn muốn một nửa còn lại của bảng, bạn chỉ có thể lưu trữ các kết quả đầu tiên vào một bảng tạm thời, cho phép gọi nó là TABLE_A. Sau đó chỉ cần làm TRỪ trên bảng gốc từ bảng này:
SELECT col_id FROM table
TRỪ
SELECT col_id FROM table_a
Hy vọng điều này giúp một ai đó.
- 1. Ghi lại các bản ghi thời gian qua nửa đêm
- 2. sql chọn từ nhiều bản ghi chỉ gần đây nhất
- 3. Chọn bản sao đầu tiên của một bản ghi
- 4. Cách chọn Chỉ một bản ghi duy nhất từ Bảng bằng cách sử dụng Biệt hiệu
- 5. Cách chọn N bản ghi từ một bảng trong mysql
- 6. Chọn một nửa các phần tử với: nth-child?
- 7. Văn bản trên nền nửa trong suốt
- 8. Chọn Bản ghi liền kề trong Mysql
- 9. Git Autocompletion trông lạ (và chỉ một nửa chức năng)
- 10. Chọn bản ghi từ một tuần trước đó trong mysql
- 11. Chọn bản ghi cho một năm nhất định Oracle
- 12. Tôi muốn chỉ định một bản ghi cho TStringList.Objects
- 13. Một nửa văn bản được cắt trong Spinner Android
- 14. Điểm meshgrid một nửa
- 15. Tôi muốn thực hiện một nửa UITableView một nửa MapView UIView với một nút ở giữa
- 16. Chọn dấu thời gian của ngày hôm nay (kể từ nửa đêm) chỉ
- 17. Oracle: Làm thế nào tôi có thể chọn bản ghi CHỈ từ ngày hôm qua?
- 18. Chọn và chỉ hiển thị lặp lại các bản ghi trong mysql
- 19. SQL - Chọn bản ghi mới nhất khi có một bản sao
- 20. mysql chọn CHỈ bản ghi trùng lặp từ cơ sở dữ liệu
- 21. PostgreSQL: Chỉ chọn bản ghi đầu tiên cho mỗi id dựa trên thứ tự sắp xếp
- 22. Cách chọn bản ghi nếu truy vấn trả về một hàng hoặc chọn không có bản ghi nếu truy vấn trả về nhiều hàng hơn
- 23. PHP Tăng thêm một nửa
- 24. Làm thế nào để chọn bản ghi mà không trùng lặp trên chỉ một trường trong SQL?
- 25. Chỉ chèn bản ghi nếu bản ghi chưa tồn tại trong bảng
- 26. Tạo các trường tùy chọn trên bản ghi Clojure?
- 27. SQL Chọn ngày tối đa với nhiều bản ghi
- 28. Nửa xu một xu trở lên?
- 29. Tại sao số học thay đổi một nửa số chỉ trong một số sự cố?
- 30. Chọn số ngày mà một bản ghi có mặt trong một năm/tháng
Có loại 50% dưới cùng nào không? chẳng hạn như cho phép bạn nói rằng bạn có 100 bản ghi, dưới cùng sẽ là 50 cuối cùng? – PositiveGuy
Sử dụng mệnh đề Đặt hàng –