, 정말처럼 대체하기 위해 "병합"기능을 사용할 수 있습니다Ruby Sequel에는 SQL "coalesce"기능에 해당하는 것이 있습니까? NULL 값을 받고 피하기 위해 SQL에서
SELECT COALESCE(some_column, 0) FROM some_table;
하지만 속편을 사용하여 같은 일을 할 수있는 방법을 찾을 수 없습니다.
, 정말처럼 대체하기 위해 "병합"기능을 사용할 수 있습니다Ruby Sequel에는 SQL "coalesce"기능에 해당하는 것이 있습니까? NULL 값을 받고 피하기 위해 SQL에서
SELECT COALESCE(some_column, 0) FROM some_table;
하지만 속편을 사용하여 같은 일을 할 수있는 방법을 찾을 수 없습니다.
DB[:some_table].select{coalesce(some_column, 0)}
대체 구문 버전은 Sequel.function(:coalesce,:some_column,5)
입니다.
예 :
require 'sequel'
Sequel.extension :pretty_table
DB = Sequel.sqlite
DB.create_table(:mytables){
primary_key :id
field :a, :type => :nvarchar, :size => 10
field :some_column, :type => :fixnum
}
DB[:mytables].insert(:a => 'a1', :some_column => 10)
DB[:mytables].insert(:a => 'a2')
Sequel::PrettyTable.print(
DB[:mytables].select(:a, :some_column, Sequel.function(:coalesce,:some_column,5))
)
그 결과
+--+--------------------------+-----------+
|a |coalesce(`some_column`, 5)|some_column|
+--+--------------------------+-----------+
|a1| 10| 10|
|a2| 5| |
+--+--------------------------+-----------+