Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Apakah ada fungsi nvl() di Ruby atau apakah saya harus menulisnya sendiri?

Anda dapat menggunakan Tugas bersyarat

x = find_something() #=>nil
x ||= "default"      #=>"default" : value of x will be replaced with "default", but only if x is nil or false
x ||= "other"        #=>"default" : value of x is not replaced if it already is other than nil or false

Operator ||= adalah bentuk singkatan dari ekspresi

x = x || "default"

Beberapa tes

irb(main):001:0> x=nil
=> nil
irb(main):003:0* x||=1
=> 1
irb(main):006:0> x=false
=> false
irb(main):008:0> x||=1
=> 1
irb(main):011:0* x||=2
=> 1
irb(main):012:0> x
=> 1

Dan ya, Jika Anda tidak ingin false menjadi cocok, Anda dapat menggunakan if x.nil? seperti yang disebutkan Nick Lewis

irb(main):024:0> x=nil
=> nil
irb(main):026:0* x = 1 if x.nil?
=> 1

Sunting :

plsql.my_table.insert {:id => 1, :val => ???????}

akan menjadi

plsql.my_table.insert {:id => 1, :val => x || 'DEFAULT' }

di mana x adalah nama variabel yang akan diatur dalam :val, 'DEFAULT' akan dimasukkan ke dalam db, ketika x nol atau salah

Jika Anda hanya ingin 'DEFAULT' nihil, gunakan cara berikut

{:id => 1, :val => ('DEFAULT' if x.nil?) }



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hibernasi + urutan oracle + pemicu

  2. String kueri Oracle termasuk karakter tanda hubung

  3. Koleksi Oracle PL/SQL - Buat Tabel Bersarang di Database

  4. Bagaimana memulihkan atau mengubah kata sandi sysdba Oracle

  5. Tidak dapat terhubung ke Oracle menggunakan PDO