问题描述
我正在处理一个 sql 查询,该查询使用多个查询,这些查询使用临时表为最终报告查询准备所需的数据。使用 DevExpress 报表引擎的应用程序,根据一些预先设置自动生成“where”子句。所需过滤器的结果是这样的:
-- the part "where 1=1" is not generated. it is added for the purpose of visualizing and demonstrating
where 1=1 AND (@inv IN(4)) AND (@date = convert(datetime,'2021-02-21 23:59:59:000',121) )
我想将生成的过滤器转换为 nvarchar 以进行更远的字符串处理,但是日期的转换函数中的单引号总是会破坏用单引号包围语句以进行转义的任何尝试。>
所以我的问题是,考虑到我有如下声明:
AND (@para1 IN(4)) AND (@date = convert(datetime,121) )
如何使用 sql Server 将其作为 nvarchar 类型的字符串处理以进行进一步解析? 知道我无法控制生成过滤器字符串的应用程序的代码
编辑 2:
另外知道只允许在开头和结尾加引号, 生成过滤器的应用程序是一个编译的应用程序。该应用采用带有占位符 {0} 的原始 sql 查询来填充生成的过滤器。不幸的是,该应用程序不允许使用应为 {1} 的下一个占位符,因此我只能使用占位符 {0} 来使用整个过滤器字符串。所以,如果 sql 或想法中有什么东西可以将上面提到的生成的过滤器字符串转换为 nvarchar,这样我就可以编写一个函数来获取每个过滤器的值并将它们重用于我的 sql 查询
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)