public static string RenameColumnInOrderBy(string inputText , DBMSType dbmsType , Dictionary <string, string> placeHolders = null) { var ast = MiniSqlParserAST.CreateStmts(inputText, dbmsType); // テスト用テーブル列 var tableColumns = new BestCaseDictionary <IEnumerable <string> >(); var tableT = new string[] { "x", "y", "z" }; tableColumns.Add("T", tableT); var tableU = new string[] { "x", "y", "z" }; tableColumns.Add("U", tableU); var tableV = new string[] { "x1", "x2", "x3" }; tableColumns.Add("V", tableV); var replacer = new ReplacePlaceHolders(placeHolders); ast.Accept(replacer); var visitor = new NormalizeOrderByVisitor(tableColumns, true); ast.Accept(visitor); var stringifier = new BeautifulStringifier(144); ast.Accept(stringifier); return(stringifier.ToString()); }
private string NormalizeOrderBy(string sql, DBMSType dbmsType = DBMSType.Unknown, bool ignoreCase = true) { var ast = MiniSqlParserAST.CreateStmts(sql, dbmsType); var visitor = new NormalizeOrderByVisitor(_tableColumns, ignoreCase); ast.Accept(visitor); var stringifier = new CompactStringifier(4098, true); ast.Accept(stringifier); return(stringifier.ToString()); }