Class | Hash |
In: |
lib/sequel/core_sql.rb
|
Parent: | Object |
Return a Sequel::SQL::BooleanExpression created from this hash, matching all of the conditions in this hash and the condition specified by the given argument.
{:a=>1} & :b # SQL: a = 1 AND b {:a=>true} & ~:b # SQL: a IS TRUE AND NOT b
# File lib/sequel/core_sql.rb, line 120 120: def &(ce) 121: ::Sequel::SQL::BooleanExpression.new(:AND, self, ce) 122: end
Return a Sequel::SQL::CaseExpression with this hash as the conditions and the given default value. Note that the order of the conditions will be arbitrary on ruby 1.8, so all conditions should be orthogonal.
{{:a=>[2,3]}=>1}.case(0) # SQL: CASE WHEN a IN (2, 3) THEN 1 ELSE 0 END {:a=>1, :b=>2}.case(:d, :c) # SQL: CASE c WHEN a THEN 1 WHEN b THEN 2 ELSE d END # or: CASE c WHEN b THEN 2 WHEN a THEN 1 ELSE d END
# File lib/sequel/core_sql.rb, line 150 150: def case(*args) 151: ::Sequel::SQL::CaseExpression.new(to_a, *args) 152: end
Return a Sequel::SQL::BooleanExpression created from this hash, matching all of the conditions. Rarely do you need to call this explicitly, as Sequel generally assumes that hashes specify this type of condition.
{:a=>true}.sql_expr # SQL: a IS TRUE {:a=>1, :b=>[2, 3]}.sql_expr # SQL: a = 1 AND b IN (2, 3)
# File lib/sequel/core_sql.rb, line 160 160: def sql_expr 161: ::Sequel::SQL::BooleanExpression.from_value_pairs(self) 162: end
Return a Sequel::SQL::BooleanExpression created from this hash, matching none of the conditions.
{:a=>true}.sql_negate # SQL: a IS NOT TRUE {:a=>1, :b=>[2, 3]}.sql_negate # SQL: a != 1 AND b NOT IN (2, 3)
# File lib/sequel/core_sql.rb, line 169 169: def sql_negate 170: ::Sequel::SQL::BooleanExpression.from_value_pairs(self, :AND, true) 171: end
Return a Sequel::SQL::BooleanExpression created from this hash, matching any of the conditions.
{:a=>true}.sql_or # SQL: a IS TRUE {:a=>1, :b=>[2, 3]}.sql_or # SQL: a = 1 OR b IN (2, 3)
# File lib/sequel/core_sql.rb, line 178 178: def sql_or 179: ::Sequel::SQL::BooleanExpression.from_value_pairs(self, :OR) 180: end
Return a Sequel::SQL::BooleanExpression created from this hash, matching all of the conditions in this hash or the condition specified by the given argument.
{:a=>1} | :b # SQL: a = 1 OR b {:a=>true} | ~:b # SQL: a IS TRUE OR NOT b
# File lib/sequel/core_sql.rb, line 130 130: def |(ce) 131: ::Sequel::SQL::BooleanExpression.new(:OR, self, ce) 132: end
Return a Sequel::SQL::BooleanExpression created from this hash, not matching all of the conditions.
~{:a=>true} # SQL: a IS NOT TRUE ~{:a=>1, :b=>[2, 3]} # SQL: a != 1 OR b NOT IN (2, 3)
# File lib/sequel/core_sql.rb, line 139 139: def ~ 140: ::Sequel::SQL::BooleanExpression.from_value_pairs(self, :OR, true) 141: end