Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Có một hàm nvl () trong Ruby hay tôi phải tự viết nó?

Bạn có thể sử dụng Chỉ định có điều kiện

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

Toán tử ||= là một dạng viết tắt của biểu thức

x = x || "default"

Một số bài kiểm tra

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

Và có, Nếu bạn không muốn sai được đối sánh, bạn có thể sử dụng if x.nil? như Nick Lewis đã đề cập

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

Chỉnh sửa :

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

sẽ là

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

trong đó x là tên biến cần đặt trong:val, 'DEFAULT' sẽ được chèn vào db, khi x là nil hoặc false

Nếu bạn chỉ muốn nil thành 'DEFAULT', hãy sử dụng cách sau

{: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. ORA-00907:Thiếu dấu ngoặc phải khi tạo khóa ngoại Oracle 12c

  2. Oracle PL / SQL Collections - Tạo Bảng lồng nhau trong Cơ sở dữ liệu

  3. Làm cách nào để tôi có thể truy cập sớm vào các bản cập nhật Oracle Java để có thể kiểm tra RIA của mình và tránh các cuộc tập trận khi các bản cập nhật này được công khai?

  4. Cách tìm dự án con của dự án mẹ được truyền trong mệnh đề 'WHERE' và cũng có thể tìm các đối tượng trùng lặp

  5. Thiếu hàng khi truy vấn bảng với Doctrine (Symfony2)