Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menggantikan Nilai NULL dalam SQL dengan Nilai Bukan NULL Terakhir Diketahui?

Bagaimana untuk Menggantikan Nilai NULL dalam SQL dengan Nilai Bukan NULL Terakhir Diketahui?

Susan Sarandon
Susan Sarandonasal
2025-01-03 16:32:40770semak imbas

How to Replace NULL Values in SQL with the Last Known Non-NULL Value?

Mengurus Nilai Null dalam SQL: Menggantikan Nilai Null dengan Nilai Diketahui Terdahulu

Cabaran biasa dalam bekerja dengan pangkalan data SQL adalah menghadapi nilai nol, yang boleh mewakili data yang hilang atau tidak diketahui. Untuk memastikan integriti data dan ketepatan analisis, adalah penting untuk mengendalikan nilai nol dengan sewajarnya.

Pernyataan Masalah:

Pertimbangkan jadual dengan dua lajur: tarikh dan nombor, dengan beberapa baris mempunyai nilai nol dalam lajur nombor. Objektifnya adalah untuk menggantikan nilai nol ini dengan nilai yang diambil daripada nilai bukan nol terakhir yang diketahui dalam baris tarikh sebelumnya.

Penyelesaian:

Untuk pengguna SQL Server, pertanyaan berikut boleh digunakan:

DECLARE @Table TABLE(
        ID INT,
        Val INT
)

INSERT INTO @Table (ID,Val) SELECT 1, 3
INSERT INTO @Table (ID,Val) SELECT 2, NULL
INSERT INTO @Table (ID,Val) SELECT 3, 5
INSERT INTO @Table (ID,Val) SELECT 4, NULL
INSERT INTO @Table (ID,Val) SELECT 5, NULL
INSERT INTO @Table (ID,Val) SELECT 6, 2


SELECT  *,
        ISNULL(Val, (SELECT TOP 1 Val FROM @Table WHERE ID < t.ID AND Val IS NOT NULL ORDER BY ID DESC))
FROM    @Table t

Penjelasan:

  • Buat jadual sementara @Jadual untuk menyimpan data sampel.
  • Gunakan ISNULL( ) untuk memeriksa sama ada Val adalah batal. Jika ya, subkueri TOP 1 dilaksanakan untuk mendapatkan nilai bukan nol terakhir yang diketahui untuk tarikh tersebut.
  • Subkueri menapis jadual untuk baris dengan ID kurang daripada nilai baris semasa dan nilai Val bukan nol , kemudian memesannya dalam tertib menurun mengikut ID untuk mendapatkan nilai terbaharu.
  • Hasil akhir merangkumi semua baris dengan yang asal atau diganti nilai nombor.

Atas ialah kandungan terperinci Bagaimana untuk Menggantikan Nilai NULL dalam SQL dengan Nilai Bukan NULL Terakhir Diketahui?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn