像通配符一样的 Visual Basic
Visual Basic Like Wild Card
我正在构建其中包含脚本任务的 SSIS 包。
有这一行:
Dim rows As DataRow() = dsUnsorted.Tables(0).[Select]("FileName like '*.csv'", "FileDate ASC")
这个工作正常。
但我需要将其更改为:
Dim rows As DataRow() = dsUnsorted.Tables(0).[Select]("FileName like 'sales*.csv'", "FileDate ASC")
其中 like
命令应该是 'sales*.csv'
而不是 '*.csv'
。当我进行更改时,脚本任务遇到错误。
应该怎么写才正确?
不幸的是,数据表中使用的 like 语句 select 只允许在您尝试过滤的字符串的开头和结尾使用通配符。
所以对我来说,习惯于喜欢 MS SQL 服务器中的语句,你会认为你的代码:
Dim rows As DataRow() = dsUnsorted.Tables(0).[Select]("FileName like 'sales*.csv'", "FileDate ASC")
会是正确的。
但是,您需要实际拆分比较以检查您正在检查的字段的开头和结尾。
正确完成任务的方法是添加一个 and 语句来检查字段的开头和结尾,因为这是唯一允许使用通配符的地方。
Dim rows As DataRow() = dsUnsorted.Tables(0).[Select]("FileName like '*.csv' and FileName like 'sales*'", "FileDate ASC")
我正在构建其中包含脚本任务的 SSIS 包。
有这一行:
Dim rows As DataRow() = dsUnsorted.Tables(0).[Select]("FileName like '*.csv'", "FileDate ASC")
这个工作正常。
但我需要将其更改为:
Dim rows As DataRow() = dsUnsorted.Tables(0).[Select]("FileName like 'sales*.csv'", "FileDate ASC")
其中 like
命令应该是 'sales*.csv'
而不是 '*.csv'
。当我进行更改时,脚本任务遇到错误。
应该怎么写才正确?
不幸的是,数据表中使用的 like 语句 select 只允许在您尝试过滤的字符串的开头和结尾使用通配符。
所以对我来说,习惯于喜欢 MS SQL 服务器中的语句,你会认为你的代码:
Dim rows As DataRow() = dsUnsorted.Tables(0).[Select]("FileName like 'sales*.csv'", "FileDate ASC")
会是正确的。
但是,您需要实际拆分比较以检查您正在检查的字段的开头和结尾。
正确完成任务的方法是添加一个 and 语句来检查字段的开头和结尾,因为这是唯一允许使用通配符的地方。
Dim rows As DataRow() = dsUnsorted.Tables(0).[Select]("FileName like '*.csv' and FileName like 'sales*'", "FileDate ASC")