在 c++ 中设置格式 SQL 查询

Format SQL query in c++

本文关键字:SQL 查询 格式 设置 c++      更新时间:2023-10-16

我想知道是否可以在类似于 Python 中的"sqlparse"模块C++中使用一些东西来格式化我的查询。你知道我可以使用什么吗?

很抱歉之前没有提供示例。我想要这样的东西:

SELECT MEMB.NAME, MEMB.AGE, AGE.GROUP FROM MEMB, AGE WHERE MEMB.AGE = AGE.AGE

变成这个:

SELECT MEMB.NAME,
       MEMB.AGE,
       AGE.GROUP
FROM   MEMB,
       AGE
WHERE  MEMB.AGE = AGE.AGE

多谢。

您可以编写自己的漂亮打印机。在这种情况下,这不会有任何困难。只需替换如下所示的内容:

"FROM" -> "nFROM"
"WHERE" -> "nWHERE"
"," -> ",nt"
"AND" -> "ANDnt"
"OR" -> "ORnt"

等。

编辑:由于您不编码,因此这是此功能的一个小版本。

#include <string>
using std::string; /* put these lines in the top of your file */
string replace(string a, string b, string c) {
    unsigned x;
    for(x = a.find(b); x != string::npos;) {
        a.erase(x, b.length());
    a.insert(x, c);
    }
    return a;
}


string formatSQL(string sql) {
    replace(sql, "FROM", "nFROM");
    replace(sql, "WHERE", "nWHERE");
    replace(sql, "," , ",nt");
    replace(sql, "AND", "ANDnt");
    replace(sql, "OR", "ORnt");
}

因此,调用formatSql("SELECT MEMB.NAME, MEMB.AGE, AGE.GROUP FROM MEMB, AGE WHERE MEMB.AGE = AGE.AGE")会给您带来所需的结果。