Sql server中在if()中如何判断两个char字符串是否完全相同?

晚上写存储过程,有一个地方比较两个字符串:if(@UID<>@UserID)这的地方,死活过不了,一直返false,无论uid和userid是否相同。求高手指正,这个地方... 晚上写存储过程,有一个地方比较两个字符串:if(@UID<>@UserID)这的地方,死活过不了,一直返false,无论uid和userid是否相同。求高手指正,这个地方为什么会一直返回 false,应该怎么写 展开
 我来答
szm341
2013-03-17 · TA获得超过6726个赞
知道大有可为答主
回答量:5005
采纳率:100%
帮助的人:5201万
展开全部
如果@uid<>@userid,无论什么值都是false的话,只有一种可能,就是其中一个值未传递,默认赋值null,null值与任何值用运算符比较都是false,既null=null为false,null<>null也是false
追问
那么如果值为null,该怎么比较?
追答
null值需要特殊判断,null is null 与null is not null,至于你存储过程的逻辑要自己设计喽
badkano
2013-03-17 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144775 获赞数:885375
团长

向TA提问 私信TA
展开全部
看下你这俩变量的长度
char类型是固定长度,比如长度是10,你输入了个abc,那么后边会自动给你补上7个空格的,要是你这俩变量设置的长度不一样,即使字符一样肯定还是不行

要是这样的话加个trim
if(trim(@UID)<>trim(@UserID))
更多追问追答
追问
长度不一样的话即使判断不相同也返回false?
追答
比如是char(10)  你输入个abc,那么返回的是abc+7个空格
char(11) 你输入个abc,那么返回的是abc+8个空格
肯定不一样啊
不过你代码没贴出来,不太好确定具体是什么原因,估计应该是这个
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
寻hero
2018-07-30
知道答主
回答量:10
采纳率:0%
帮助的人:9829
展开全部
在MySql中是用<=>,类似于编程中的equals。SQL server中你试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kugua70708
2013-03-17 · TA获得超过161个赞
知道小有建树答主
回答量:200
采纳率:0%
帮助的人:191万
展开全部
比较前把这两个变更打印出来看一下。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式