Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mengembalikan NULL Daripada Ralat Baris Tidak Ditemui dalam Pertanyaan SQL?

Bagaimanakah Saya Boleh Mengembalikan NULL Daripada Ralat Baris Tidak Ditemui dalam Pertanyaan SQL?

Barbara Streisand
Barbara Streisandasal
2025-01-05 14:17:39906semak imbas

How Can I Return NULL Instead of a Row-Not-Found Error in SQL Queries?

Mengembalikan NULL Apabila Tiada Rekod Ditemui

Apabila menggunakan SQL untuk mendapatkan semula data daripada pangkalan data, adalah perkara biasa untuk menghadapi situasi di mana rekod yang dikehendaki mungkin tidak wujud. Secara lalai, situasi sedemikian mengakibatkan ralat baris tidak ditemui. Walau bagaimanapun, terdapat cara untuk mengendalikan perkara ini dan sebaliknya mengembalikan nilai tertentu.

Pengenkapsulan Subkueri

Kaedah yang mudah tetapi berkesan untuk mengembalikan nilai nol apabila tiada rekod ditemui adalah untuk merangkum pertanyaan dalam subkueri. Teknik ini menukar ralat "row-not-found" kepada nilai nol.

Berikut ialah contoh:

SELECT (SELECT idnumber FROM dbo.database WHERE number = '9823474') AS idnumber;

Pertimbangan Keserasian

Kaedah ini telah diuji dan disahkan untuk berfungsi dalam PostgreSQL, SQLite, SQL Server, MySQL dan Firebird. Walau bagaimanapun, sedikit variasi mungkin diperlukan untuk sistem pangkalan data lain.

Sebagai contoh, dalam Oracle, anda perlu membuat pertanyaan daripada jadual 1 baris tiruan yang dipanggil DUAL:

SELECT (SELECT id FROM tbl WHERE id = 9823474) AS id FROM DUAL;

DB2 memerlukan pendekatan serupa, menggunakan SYSIBM.SYSDUMMY1 sebagai jadual tiruan:

SELECT (SELECT id FROM tbl WHERE id = 9823474) AS id FROM SYSIBM.SYSDUMMY1;

Dengan merangkum pertanyaan dalam subkueri, anda boleh mengendalikan ketiadaan rekod dengan berkesan dan mengembalikan nilai nol dan bukannya menghadapi ralat baris-tidak-ditemui.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengembalikan NULL Daripada Ralat Baris Tidak Ditemui dalam Pertanyaan SQL?. 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