【发布时间】:2016-07-25 22:45:41
【问题描述】:
我无法在 SSIS SQL Server OLEDB 源组件的 LIKE 子句中找到正确的语法来使用参数。举个简单的例子,考虑以下单列表“tblTeams”,将团队和团队成员列为单个字符串(我知道这很愚蠢):
╔═══════════════╗
║ TeamMembers ║
╠═══════════════╣
║ A - Joe ║
║ A - Melissa ║
║ B - Frank ║
║ C - Angela ║
║ A - Luis ║
║ C - Ashley ║
║ B - Sam ║
╚═══════════════╝
我想运行一个 for 循环来导出每个团队成员的文件。循环有一个来自团队名称数组的输入变量:“A”、“B”、“C”等。我想使用该变量作为 OLE DB 源中的参数来选择团队成员:
SELECT [TeamMembers]
FROM tblTeams
WHERE [TeamMembers] LIKE '?%'; --where ? is param = "A", "B", or "C"
但是,这里的语法将参数占位符视为问号字符串。将占位符移到外面会破坏 LIKE 子句。是否可以在 LIKE 中使用 SSIS 参数?
【问题讨论】:
-
你必须使用 findstring 函数stackoverflow.com/questions/4739230/…
-
试试 SELECT [TeamMembers] FROM tblTeams WHERE [TeamMembers] like 吗? + '%'
-
@ChintuS FINDSTRING 在这里不直接适用,因为我正在编写 SQL 查询,而不是表达式。一个很好的建议,谢谢。
-
@sandeeprawat 我没想到您的解决方案会因为单引号放置而起作用,但确实如此!如果您作为答案转发,我会接受。
标签: sql-server parameters ssis