- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
例如
query = " select "2017-06-08" as new_colum, "true" as my_flag, "column1", "column2" from "table1" "
上面的查询应该改成:
从 [table1] 中选择“2017-06-08”作为 new_column,“true”作为 my_flag,[column1],[column2]
。 (MS SQL 格式)
我可以使用像 jsql 解析器这样的解析器吗?或者还有其他更好的方法吗?
最佳答案
如果不是因为您的日期被双引号括起来,我们本可以将 "(.*?)"
替换为 [$1]
使用 String#replaceAll()
。但是双引号日期的存在使问题变得更加困难。我更新后的答案使用以下模式来仅针对双引号中的非日期:
(\s+)"([^\d].*?)"
这只会匹配前面至少有一个空白字符的引号术语,并且引号内的第一个字符不是数字。这应排除所有日期,并且不应排除任何列,因为 SQL Server 列名不能以数字开头。
我在这里假设每个引用的列前面都有空格。这应该没问题,假设查询字符串中的第一个词始终是关键字,如 SELECT
或 UPDATE
。
String query = "select \"2017-06-08\" as new_colum, \"column1\", \"column2\" from \"table1\"";
query = query.replaceAll("(\\s+)\"([^\\d].*?)\"", "$1[$2]");
System.out.println(query);
输出:
select "2017-06-08" as new_colum, [column1], [column2] from [table1]
顺便说一句,如果您想知道在引用的术语开头之前检查空格的意义何在,请尝试从正则表达式中删除该要求。您会看到 replaceAll()
会错误地将 结束 引号视为术语的开始,但事实并非如此。
关于java - 替换 SQL 查询中表名、列名周围的转义字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44455640/
我有一张用户表 users +------+ - user_id ... ... - updated_by 据我所知,updated_by 列应该在 user_id 列上引用此表。我不确定,这
我是 SQL 新手,我有 2 个包含这些列的表: table structures__|id|name|nation_id|image| table nations______|id|nation|
我正在使用 codeigniters sql 选择来选择不在一组 id 中的用户。 $this->db->select('fbuid')->where_in('fbuid', $friends); $
找不到具体的答案所以我想问一下。简而言之,我有一个表,它根据存储在我的数据库中的数据从 API 检索信息,我想要做的就是从该表中获取某些列的总数,而不是全部列,以便我可以在其他地方使用它们网站。例如,
这是 phpMyAdmin 为我生成的 SQL 语句: SELECT * FROM `table_name` WHERE 1 可以看到 table_name 被 ` 字符包围。 为什么? 最佳答案 用
我有两个这样的表 我想在这里从 Table1 插入到 Table2。这就是我想要的。 取 MOU = 10。它在同一行中有 num1 和 hour1。我想将它插入到与 num1 同一行与 hour1
我的任务是使用 C++ 编写一个程序,以使用 Gamma 分布计算概率。如果我已经找到函数值,如何将其更改为 Gamma 分布表中的值?我不知道公式。 例如Fg(8;8),在表中为0.5470。而表中
我在查看 HTML 电子邮件时遇到问题,需要格式化 css 以与 HTML 脚本内联。 我有多个表使用的以下 td css。 td.gridtopleft { border-left: solid
我正在使用来自 pip 的最新 sqlalchemy 和最新的 pymssql 连接 mssql 服务器 8.00.2039(2005 年?)困难在于表和列名称是俄语。是否可以用 sqlalchemy
我有一个有趣的问题 - 我需要 JOIN 语句的完全相反。 我有一个名为 invoices 的表和另一个名为 payments 的表。我想按顺序检索没有任何付款的发票,但之后是有付款的行。 发票表有这
我有两个表: 主题:[id, ...] 类别:[主题.id, ...] 我想从表 #1 中选择所有主题,但不包含 #2(类别)中的条目。 任何提示表示赞赏(: 最好的问候 最佳答案 Sachin 已经
MYSQL: 我正在使用表 information_schema.tables 中的 AUTO_INCRMENT 列来获取下一个 id。 如下: SELECT AUTO_INCREMENT FROM
我是一名优秀的程序员,十分优秀!