sql-server - 在 SET 中使用通配符

标签 sql-server

table

productName   description

+++++++++++++++++++++++++

OpenIDM       Platform for building enterprise provisioning solutions

OpenDM        Full-featured access management

OpenDJ        Robust LDAP server for Java

在上表中,当我在查询下方运行时,我按预期获得前两条记录
DECLARE @searchInput varchar
SET @searchInput = 'dm'
SELECT * FROM ForgeRock
WHERE productName like '%DM%'

结果
用于构建企业供应解决方案的 OpenIDM 平台
OpenDM 全功能访问管理

但是当我运行下面的查询时,模式匹配似乎无法正常工作,我得到了所有记录。
DECLARE @searchInput varchar
SET @searchInput = 'dm'
SELECT * FROM ForgeRock
WHERE productName like '%'+@searchInput+'%'

http://sqlfiddle.com/#!18/6e9af/8

最佳答案

您没有声明 varchar 字符串的大小。默认为 1。做一个 SELECT@searchInput亲眼看看

DECLARE @searchInput varchar
SET @searchInput = 'dm'

SELECT @searchInput 

关于sql-server - 在 SET 中使用通配符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52440232/

相关文章:

c# - 对客户的 SQL Server 数据库更改

sql - 这个过程如何在不引用传递的参数值的情况下执行工作?

c# - 在 Azure SQL 上保存 Datetimeoffset 不起作用

Sql Server 触发器将新行中的值插入到另一个表中

sql - 事务如何在 SQL Server 中使用多个 VALUES 的单个 INSERT 中工作

sql - 为什么我要在默认目录旁边创建另一个目录?

sql-server - MS SQL RegEx 准确查找 6 个数字

sql-server - 通过 WAN 打开大文件的好方法是什么?

sql-server - 从 SQL Server 2008 Express 升级到 2008 Developer

c# - 使用 SQL Server Management Studio 进行数据库查询时遇到问题