Rumah  >  Soal Jawab  >  teks badan

Dalam SQL, cara untuk menetapkan nilai lajur kepada null tanpa menggunakan pernyataan CASE, menggunakan fungsi NULLIF bersarang apabila syarat A atau syarat B dipenuhi

<p>Saya mempunyai lajur C1 yang nilainya boleh menjadi 'nilai', 'kosong' atau 'T/A'. </p> <pre class="brush:php;toolbar:false;">| ------- | | |epal|</pre> <p>Saya mahu memilih lajur C1 dengan cara yang menukar nilai nol dan N/A kepada NULL, menggunakan NULLIF. </p> <pre class="brush:php;toolbar:false;">| ------- |NULL | |NULL | |epal|</pre> <p>Kami boleh menggunakan <code>NULLIF(C1, '')</code>, yang mengembalikan NULL jika nilai lajur kosong. </p> <p>Kami juga boleh menggunakan CASE untuk mencapai kedua-dua situasi ini, tetapi saya ingin tahu sama ada terdapat cara untuk menggunakan NULLIF untuk mencapainya, dan jika ya, bagaimana untuk mencapainya? (Atau kaedah lain selain CASE)</p> <p>Serupa dengan <kod>NULLIF(C1, '' ATAU 'T/A')</code></p> <p>Terima kasih terlebih dahulu. </p>
P粉310754094P粉310754094422 hari yang lalu498

membalas semua(2)saya akan balas

  • P粉253800312

    P粉2538003122023-08-26 12:34:15

    Gunakan caseungkapan:

    (case when c1 not in ('', 'N/A') then c1 end)

    balas
    0
  • P粉925239921

    P粉9252399212023-08-26 00:26:44

    Anda boleh melakukan ini menggunakan fungsi nested NULLIF():

    NULLIF(NULLIF(c1, ''), 'N/A')

    Lihat Demo.

    balas
    0
  • Batalbalas