Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Niezależna od bazy danych konkatenacja ciągów SQL w Rails

Miałem ten sam problem i nigdy nie wymyśliłem niczego, co zostało wbudowane w Railsy. Więc napisałem tę małą metodę.

# Symbols should be used for field names, everything else will be quoted as a string
def db_concat(*args)

  adapter = configurations[RAILS_ENV]['adapter'].to_sym
  args.map!{ |arg| arg.class==Symbol ? arg.to_s : "'#{arg}'" }

  case adapter
    when :mysql
      "CONCAT(#{args.join(',')})"
    when :sqlserver
      args.join('+')
    else
      args.join('||')
  end

end

Myślę, że ktoś powinien naprawdę napisać jakąś wtyczkę pomocnika SQL, która może automatycznie formatować proste wyrażenia SQL w oparciu o prawidłowe funkcje lub operatory dla bieżącego adaptera. Może sam napiszę.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. dodaj kolumnę dynamicznie za pomocą zapytania select

  2. Entity Framework/SQL2008 — jak automatycznie aktualizować pola LastModified dla jednostek?

  3. Jak wyświetlić rekord wiele razy, w tym interwały dzienne w oparciu o daty rozpoczęcia i zakończenia?

  4. Jak dodać numer kolejny dla grup w zapytaniu SQL bez tabel tymczasowych

  5. Jak mogę przyspieszyć ten widok indeksowany?