如何在Sql Server 2008中为字符串值编写IF条件? [英] How to write IF condition for string value in Sql Server 2008?

查看:139
本文介绍了如何在Sql Server 2008中为字符串值编写IF条件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试检查条件.如果vale是一个字符串值,则为其他值,否则,如果其他字符串值则为其他值.我的追求就是这样

I''m trying to check for condition If the vale is one string values then something, else if other string value then some other thing. My quest is like this

CREATE PROCEDURE GetMemberManagement

@UserId varchar(100)

AS

BEGIN

declare @membertype varchar(100)
set @membertype= CAST((select b.membertypename from users a left join membertypes b on a.membertype=b.membertype where
a.userid = @UserId)

if @membertype = 'Advisor'
BEGIN
select b.fullname,c.membertypename,a.rankno,d.rankname from users a left join profiles b on a.accountid=b.accountid
left join membertypes c on a.membertype=c.membertype left join ranks d on a.rankno=d.rankno
where a.userid=@UserId
END

else if @membertype = 'Agent'
BEGIN
select b.fullname,c.membertypename,a.rankno,d.rankname from users a left join profiles b on a.accountid=b.accountid
left join membertypes c on a.membertype=c.membertype left join ranks d on a.rankno=d.rankno
where a.userid=@UserId
END

END



我在这里遇到这样的错误

消息156,级别15,状态1,过程GetMemberManagement,第13行
关键字"if"附近的语法不正确.

那我该如何解决这个问题呢?



Here i''m getting error like this

Msg 156, Level 15, State 1, Procedure GetMemberManagement, Line 13
Incorrect syntax near the keyword ''if''.

So How can I fix this problem?

推荐答案

CAST需要目标类型:
CAST requires a destination type:
...
set @membertype= CAST(
                   (select b.membertypename from users a left join membertypes b on a.membertype=b.membertype where a.userid = @UserId) 
                 as varchar(100))
...


这篇关于如何在Sql Server 2008中为字符串值编写IF条件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆