0

我想知道是否有一种方法可以通过传递给它的参数来格式化 sql 以获得结果。

dim fName as string = Tom

exec SP_GetPersonInfo + fName 

@FName VarChar(255)

SELECT Gender, Height, Weight, Age
FROM Person
WHERE FirstName LIKE ('fName %') <-- how would I format this? 
4

2 回答 2

0

可以与 LIKE 运算符一起使用的通配符在运行时动态评估,而不是在语句编译时静态评估。这意味着 '%' 必须是您提供给运算符的文字或字符串的一部分,而不是语句本身的一部分。

例如,以下 Java 语句将字符串输入到 ArrayList 中。ArrayList 包含作为 JDBC PreparedStatement 参数的字符串。参数形式为

  • “姓名”+“%”

以便可以通过指定客户姓名的前几个字符来查找客户。注意:这种形式允许许多查询优化器仍然使用索引。

m_qlist.add(s[i] + "%");
于 2013-08-09T02:15:00.077 回答
0

基于上述内容,您可以以这种方式编写查询以使用参数@FName

SELECT Gender, Height, Weight, Age
FROM Person
WHERE FirstName LIKE @FName + '%';

使结果加粗完全是另一回事。而且,正如 Tim 所说,这应该由用户界面处理。您不应该尝试将格式化代码破解到 SQL 语句中。

编辑:在你澄清之后,我相信上面的陈述是你的陈述的参数化等价物:

FirstName LIKE ('" + fname + " %') "
于 2013-08-09T01:55:12.317 回答