SQL2005字符规范化
把SQL拼串进行查询,遇到一大堆的问题,最后发现是字符格式化的问题:
格式化代码:
原因见SQL2005 LIKE 的帮助信息:
ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.zh-CHS/tsqlref9/html/581fb289-29f9-412b-869c-18d33a9e93d5.htm
详细信息见 使用 LIKE 的模式匹配:
上面做的只是简单的将目录的结构格式化进行搜索的字符串
格式化代码:
1 directory = directory.Replace("'", "''");
2 directory = directory.Replace("[", "[ [ ]");
3 directory = directory.Replace("_", "[_]");
4 directory = directory.Replace("%", "[%]");
2 directory = directory.Replace("[", "[ [ ]");
3 directory = directory.Replace("_", "[_]");
4 directory = directory.Replace("%", "[%]");
原因见SQL2005 LIKE 的帮助信息:
ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.zh-CHS/tsqlref9/html/581fb289-29f9-412b-869c-18d33a9e93d5.htm
详细信息见 使用 LIKE 的模式匹配:
将通配符作为文字使用
可以将通配符模式匹配字符作为文字字符使用。若要将通配符作为文字字符使用,请将通配符放在方括号中。下表显示了几个使用 LIKE 关键字和 [ ] 通配符的示例。
符号 | 含义 |
---|---|
LIKE '5[%]' |
5% |
LIKE '[_]n' |
_n |
LIKE '[a-cdf]' |
a、b、c、d 或 f |
LIKE '[-acdf]' |
-、a、c、d 或 f |
LIKE '[ [ ]' |
[ |
LIKE ']' |
] |
LIKE 'abc[_]d%' |
abc_d 和 abc_de |
LIKE 'abc[def]' |
abcd、abce 和 abcf |
上面做的只是简单的将目录的结构格式化进行搜索的字符串