首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用'node-mssql‘npm包向查询MS SQL Server实例添加多个输入

使用'node-mssql‘npm包向查询MS SQL Server实例添加多个输入
EN

Stack Overflow用户
提问于 2021-01-25 05:52:15
回答 1查看 336关注 0票数 0

我想查询MS SQL Server实例来处理一个非常简单的POST请求。我正在使用nodejs + express。以下代码(异步版本)仅考虑第一个input类型,因此返回错误-

代码语言:javascript
复制
  let pool = await sql.connect(dbCredentials);
  let bookName = "string to be matched" ; 
  let ranksVal= 10
  
  let result = await pool
    .request()
    .input("item", sql.VarChar, bookName)
    .input("ranksVal", sql.Int , ranksVal)
    .query(`select top @ranksVal * from dbTable where book = @item order by counts desc`);

理想情况下,上面的代码应该返回以下SQL查询的结果:

代码语言:javascript
复制
 select top 10 * from dbTable where book = "string to be matched" order by counts desc

或者,也可以使用以下解决方案:

代码语言:javascript
复制
  let result = await pool
    .request()
    .input("item", sql.VarChar, bookName)
    .query(`select top ${ranksVal} * from dbTable where book = @item order by counts desc`);

但我想要理解的是,我们如何将多个值传递给req.input()方法。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-25 05:57:30

若要在TOP values子句中使用表达式或参数,必须使用括号。例如

代码语言:javascript
复制
 .query(`select top (@ranksVal) * from dbTable where book = @item order by counts desc`);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65876370

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档