CREATE PROCEDURE index_Message
@SMStype int, --==消息类型
@SMSto varchar(50),--==消息的归属者
@top bit=false
asif @top=falseSELECT Title, SendDate, Content,
(SELECT COUNT(*)
FROM writeBack
WHERE parentID = Message.nID) AS writeBack
FROM Message
WHERE (SMSTo = @SMSto) AND (SMStype = @SMStype)else
SELECT top 5 Title, SendDate, Content,
(SELECT COUNT(*)
FROM writeBack
WHERE parentID = Message.nID) AS writeBack
FROM Message
WHERE (SMSTo = @SMSto) AND (SMStype = @SMStype)go我这样做有报错,那么请问SQL 存储过程里面如何使用IF呢?
@SMStype int, --==消息类型
@SMSto varchar(50),--==消息的归属者
@top bit=false
asif @top=falseSELECT Title, SendDate, Content,
(SELECT COUNT(*)
FROM writeBack
WHERE parentID = Message.nID) AS writeBack
FROM Message
WHERE (SMSTo = @SMSto) AND (SMStype = @SMStype)else
SELECT top 5 Title, SendDate, Content,
(SELECT COUNT(*)
FROM writeBack
WHERE parentID = Message.nID) AS writeBack
FROM Message
WHERE (SMSTo = @SMSto) AND (SMStype = @SMStype)go我这样做有报错,那么请问SQL 存储过程里面如何使用IF呢?
@SMStype int, --==消息类型
@SMSto varchar(50),--==消息的归属者
@top bit=0 --sql里没有布尔型数据类型,bit用0/1表示
asif @top=0 --改为0/1SELECT Title, SendDate, Content,
(SELECT COUNT(*)
FROM writeBack
WHERE parentID = Message.nID) AS writeBack
FROM Message
WHERE (SMSTo = @SMSto) AND (SMStype = @SMStype)else
SELECT top 5 Title, SendDate, Content,
(SELECT COUNT(*)
FROM writeBack
WHERE parentID = Message.nID) AS writeBack
FROM Message
WHERE (SMSTo = @SMSto) AND (SMStype = @SMStype)go
begin
end
else
begin
end
begin
.............
.............
end
else
begin
............
............
end
SQL中没有false这个值
可以用0或1来代替
if
else
如果是多条语句的话就写成
if
begin
end
else
begin
end