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

Bagaimana untuk Menggantikan Nilai NULL dengan Nilai Bukan NULL Sebelumnya dalam SQL?

Barbara Streisand
Lepaskan: 2025-01-04 10:42:34
asal
897 orang telah melayarinya

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

Gantikan Nilai NULL dengan Nilai Diketahui Sebelumnya dalam SQL

Dalam pangkalan data SQL, adalah perkara biasa untuk menemui jadual dengan nilai yang tiada atau NULL. Dalam senario tertentu, nilai NULL ini perlu diganti dengan nilai yang diketahui terkini daripada baris sebelumnya. Ini amat berguna apabila bekerja dengan data siri masa, di mana nilai yang tiada boleh mengganggu analisis data.

Contoh:

Pertimbangkan jadual berikut yang mewakili siri masa nombor diindeks mengikut tarikh:

date   number
----   ------
1      3
2      NULL
3      5
4      NULL
5      NULL
6      2
Salin selepas log masuk

Kami mahu menggantikan nilai NULL dalam lajur nombor dengan nilai terkini yang diketahui daripada baris sebelumnya. Sebagai contoh, tarikh 2 hendaklah diisi dengan 3, tarikh 4 dan 5 hendaklah diisi dengan 5, dan seterusnya.

Penyelesaian Menggunakan SQL Server:

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
Salin selepas log masuk

Pertanyaan ini menggunakan subkueri untuk mencari nilai bukan NULL terkini untuk setiap baris dengan nilai NULL. Fungsi ISNULL kemudian menggantikan nilai NULL dengan nilai yang dipilih. Hasilnya ialah jadual dengan nilai NULL digantikan dengan nilai yang diketahui sebelumnya.

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

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan