Rails中与数据库无关的SQL字符串连接

我想在Rails查询中进行数据库端字符串连接,并以数据库独立的方式执行.

sql-92将双栏(||)指定为连接运算符.不幸的是,看起来MS sql Server不支持它;它改为使用

我猜测Rails的sql语法抽象已经解决数据库特定的运算符问题.如果它存在,我该如何使用它?

解决方法

我有同样的问题,从来没有想到Rails内置的任何东西.所以我写了这个小方法.
# 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

我在想,有人应该写一些可以使用正确的函数或操作符来自动格式化简单的sql表达式的一些sql助手插件.也许我会自己写一个.

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...