我试图对上述三个DBMS使用相同的sql语句。。但问题是它涉及到字符串连接,但是每个dbms中有不同的连接操作方式。。但我要单人接线员。。需要别人的帮助

最佳答案

您也许可以在应用程序代码中绕过此问题,方法是在sql语句中使用用于连接的占位符,然后将其替换为您正在使用的rdbms的正确样式:

select {conpre} myfield1 {conmid} myfield2 {conmid} myfield3 {conend}
  from mytable

然后在伪代码中:
if rdbms is sqlserver
    conpre = ""
    conmid = " + "
    conend = ""
else if rdbms is mysql
    conpre = "concat("
    conmid = ", "
    conend = ")"
else if rdbms is oracle
    conpre = ""
    conmid = " || "
    conend = ""
else if
    ' etc...
end if

stmt = replace(stmt, "{conpre}", conpre)
stmt = replace(stmt, "{conmid}", conmid)
stmt = replace(stmt, "{conend}", conend)

10-04 10:50