找回密码
 立即注册

QQ登录

只需一步,快速开始

qqqqnnnn

初级会员

20

主题

52

帖子

222

积分

初级会员

积分
222
qqqqnnnn
初级会员   /  发表于:2024-12-27 15:06  /   查看:40  /  回复:4
1金币



像这种动态设置是否模糊查询的效果,活字格可以实现吗?
附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

假设要模糊查询产品名称中包含 “手机” 的产品信息,可以这样调用存储过程: 如果要严格查询产品类别为 “电子产品” 的产品,调用方式如下:

4 个回复

正序浏览
qqqqnnnn
初级会员   /  发表于:前天 16:00
5#
amtath 发表于 2024-12-27 15:49
假设要模糊查询产品名称中包含 “手机” 的产品信息,可以这样调用存储过程:

明白了谢谢
回复 使用道具 举报
qqqqnnnn
初级会员   /  发表于:前天 15:41
3#
存储过程方便指导一下吗?
回复 使用道具 举报
amtath悬赏达人认证 活字格认证
论坛元老   /  发表于:前天 15:31
2#

这个地方只能选择决定了你想要的效果实现起来困难重重。
但你要问可以实现吗 那是可以的,
用条件走分支,但组合起来有点傻
或者走存储过程也可以,但那样就有点门槛了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
最佳答案
最佳答案
amtath悬赏达人认证 活字格认证
论坛元老   /  发表于:前天 15:06
来自 4#
  1. 帮我写一个mssql ,字段模糊匹配和严格匹配的动态存储查询示例
复制代码
  1. 以下是一个在 SQL Server 中实现字段模糊匹配和严格匹配的动态存储过程查询示例,
复制代码
  1. -- 创建存储过程
  2. CREATE PROCEDURE GetProductsByDynamicMatch
  3.     -- 用于指定匹配类型,比如 'like' 表示模糊匹配,'=' 表示严格匹配
  4.     @MatchType NVARCHAR(10),  
  5.     -- 要匹配的字段名
  6.     @FieldName NVARCHAR(50),  
  7.     -- 匹配的值
  8.     @MatchValue NVARCHAR(255)  
  9. AS
  10. BEGIN
  11.     DECLARE @sql NVARCHAR(MAX);
  12.     SET @sql = N'SELECT * FROM Products WHERE ';
  13.    
  14.     -- 根据传入的匹配类型来构建不同的条件语句
  15.     IF @MatchType = 'like'
  16.     BEGIN
  17.         SET @sql = @sql + QUOTENAME(@FieldName) + N' LIKE ''%' + @MatchValue + '%''';
  18.     END
  19.     ELSE IF @MatchType = '='
  20.     BEGIN
  21.         SET @sql = @sql + QUOTENAME(@FieldName) + N' = ''' + @MatchValue + '''';
  22.     END
  23.     ELSE
  24.     BEGIN
  25.         -- 如果传入的匹配类型不合法,返回提示信息
  26.         RAISERROR('Invalid match type specified.', 16, 1);
  27.         RETURN;
  28.     END
  29.    
  30.     -- 执行动态构建的 SQL 语句
  31.     EXEC sp_executesql @sql;
  32. END
复制代码



假设要模糊查询产品名称中包含 “手机” 的产品信息,可以这样调用存储过程:


  1. EXEC GetProductsByDynamicMatch @MatchType = 'like', @FieldName = 'ProductName', @MatchValue = '手机';
复制代码

  1. SELECT * FROM Products WHERE [ProductName] LIKE '%手机%';
复制代码


如果要严格查询产品类别为 “电子产品” 的产品,调用方式如下:



  1. EXEC GetProductsByDynamicMatch @MatchType = '=', @FieldName = 'Category', @MatchValue = '电子产品';
复制代码
  1. SELECT * FROM Products WHERE [Category] = '电子产品';
复制代码


回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部