度量快速开发平台-专业、快速的软件定制快开平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 部件 流程 SQL
查看: 3131|回复: 16
打印 上一主题 下一主题

[分享] SQL学习笔记——关于参数类型的问题

[复制链接]

235

主题

2547

帖子

5835

积分

论坛元老

Rank: 8Rank: 8

积分
5835
跳转到指定楼层
楼主
发表于 2020-6-14 14:53:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在使用存储过程的时候碰到一个问题:
存储过程有一个int类型的参数,可传0,1,2在存储过程中筛选数据,如果传空值则不做筛选。
然而存储过程处理该参数时会把0当作空值来处理,达不到预期效果。
解决方法 :将int型参数换为varchar型参数则不会有此问题
问题示例:
  1. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GetUsers]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  2. drop procedure [dbo].[GetUsers]
  3. GO

  4. create procedure GetUsers   
  5.     @sex int
  6. as
  7. begin   
  8.     declare @sqlStr varchar(1000)
  9.     set @sqlStr = 'select name, sex from users'
  10.     if (@sex <> '')
  11.         set @sqlStr = @sqlStr + ' where sex =' + CONVERT(varchar(10),@sex)
  12.     exec(@sqlStr)
  13. end
复制代码
上面的存储过程是根据参数@sex查找不同性别的用户,sex=0为男性,sex = 1为女性,
但实际上并不符合预期效果,如下图:
将参数@sex改为varchar类型即可。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
沙发
发表于 2020-6-14 15:11:13 | 只看该作者
回复 支持 反对

使用道具 举报

141

主题

1551

帖子

3573

积分

论坛元老

Rank: 8Rank: 8

积分
3573
板凳
发表于 2020-6-14 17:18:44 | 只看该作者
回复 支持 反对

使用道具 举报

235

主题

2547

帖子

5835

积分

论坛元老

Rank: 8Rank: 8

积分
5835
地板
 楼主| 发表于 2020-6-15 14:24:27 | 只看该作者
回复 支持 反对

使用道具 举报

235

主题

2547

帖子

5835

积分

论坛元老

Rank: 8Rank: 8

积分
5835
5#
 楼主| 发表于 2020-6-15 14:25:46 | 只看该作者
回复 支持 反对

使用道具 举报

141

主题

1551

帖子

3573

积分

论坛元老

Rank: 8Rank: 8

积分
3573
6#
发表于 2020-6-15 17:16:52 | 只看该作者
回复 支持 反对

使用道具 举报

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
7#
发表于 2020-6-16 14:06:36 | 只看该作者
回复 支持 反对

使用道具 举报

235

主题

2547

帖子

5835

积分

论坛元老

Rank: 8Rank: 8

积分
5835
8#
 楼主| 发表于 2020-6-16 14:45:10 | 只看该作者
回复 支持 反对

使用道具 举报

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
9#
发表于 2020-6-17 14:10:39 | 只看该作者
回复 支持 反对

使用道具 举报

235

主题

2547

帖子

5835

积分

论坛元老

Rank: 8Rank: 8

积分
5835
10#
 楼主| 发表于 2020-6-17 14:40:50 | 只看该作者
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|重庆度量科技  本站关键词:快速开发平台

GMT+8, 2024-11-28 08:37 , Processed in 0.134713 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表