none
获取sql查询语句中的select~from内的查询的字段名称的正则表达式要如何写? RRS feed

  • 问题


  • 例子: select name,age,Date as CreateDate from table where id in(select id from table id in(1,2,3,4,5))。

    我想要拿到其中在select和from之间的name,age,CreateDate 这三个字段名称,但不包括子查询的sql里的字段名称,其正则表达式要如何写,我只知道(?<=select).*?(?=from)可以获取name,age,Date as CreateDate,但是不知道怎么继续嵌套匹配.




    2018年3月30日 7:55

答案

  • 推荐用第三方的sql parser,自己要分析很多种情况,比如有别名的时候

    SELECT  NoOfRecord=COUNT(1)  FROM table

    https://cn.bing.com/search?q=c%23+sql+parser&qs=n&form=QBLHCN&sp=-1&pq=c%23+sql+parser&sc=8-13&sk=&cvid=A321BED7A3A54F3AB0A413F0A73F4632

    https://www.codeproject.com/Articles/32524/SQL-Parser


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    2018年4月2日 1:04