Tsql 将Navision筛选器转换为SQL,其中
我在表格中有一个字段,格式为Tsql 将Navision筛选器转换为SQL,其中,tsql,filter,navision,dynamics-nav,Tsql,Filter,Navision,Dynamics Nav,我在表格中有一个字段,格式为1_2..1_10 | 1_6 | 1_8 |,其中1_2..1_10包括1_2,1_3和其他 如何选择数据,其中number=1_3?第一个建议:获得修改数据库结构的权限,并找出如何更好地存储导航字符串 第二个建议:CLR 我假设您对这些概念都比较熟悉。如果你不是,它们在网络上都有很好的文档记录 我的方法是使用CLR函数,因为在SQL中会有一些高级的东西很难用C#处理。psuedo的穿行路线是这样的 实施 创建CLR函数并在SQL server实例上实现它 使用SQ
1_2..1_10 | 1_6 | 1_8 |
,其中1_2..1_10
包括1_2
,1_3
和其他
如何选择数据,其中
number=1_3
?第一个建议:获得修改数据库结构的权限,并找出如何更好地存储导航字符串
第二个建议:CLR
我假设您对这些概念都比较熟悉。如果你不是,它们在网络上都有很好的文档记录
我的方法是使用CLR函数,因为在SQL中会有一些高级的东西很难用C#处理。psuedo的穿行路线是这样的
实施
SELECT Field1,Field2...CLRFunctionName(FilterValue) AS FixedFilterValue FROM Sometable WHERE FixedFilterValue LIKE '%1_3%';
SELECT Field1,Field2...CLRFunctionName(FilterValue) AS FixedFilterValue FROM Sometable WHERE FixedFilterValue LIKE '%1_3%';
你不能改变数据库结构吗?这一个特别糟糕…我会注意到我考虑在SQL server中使用函数,但我认为每行函数调用中的临时表数量会对性能造成更大的影响。C#和.NET应该比SQL Server更快地处理这种迭代式思维过程。在开始本说明之前,请注意CLR很难正确实施,一旦实施,就很难维护。还有一个说明。如果您的数据库很大,请不要急于获取此查询。这将是相当缓慢的。正如我所说的,最好的办法是找到某种方法,使navision过滤器与SQL更容易理解的东西配对。