日期:2014-05-18  浏览次数:20463 次

if then 问题
各位大大帮忙看看以下代码问题:
begin
if   (@first1+@last1)%10=8   or   (@first1+@last1)%10=9   or
(@first2+@last2)%10=8   or   (@first2+@last2)%10=9  
then
insert   into   xue(B1,B2,P1,P2)   values(@first1,@last1,@first2,@last2)
else
end
-----------
我执行时显示错误:
消息   156,级别   15,状态   1,第   71   行
关键字   'then '   附近有语法错误。
消息   156,级别   15,状态   1,第   73   行
关键字   'else '   附近有语法错误。


------解决方案--------------------
then改为begin,没有else就不要else嘛,这个是sql语句吧?
------解决方案--------------------
语法错误,在sql中,if条件判断是没有then的

IF...ELSE
在执行 Transact-SQL 语句时强加条件。如果条件满足(布尔表达式返回 TRUE 时),则在 IF 关键字及其条件之后执行 Transact-SQL 语句。可选的 ELSE 关键字引入备用的 Transact-SQL 语句,当不满足 IF 条件时(布尔表达式返回 FALSE),就执行这个语句。

语法
IF Boolean_expression
{ sql_statement | statement_block }
[ ELSE
{ sql_statement | statement_block } ]

参数
Boolean_expression

是返回 TRUE 或 FALSE 的表达式。如果布尔表达式中含有 SELECT 语句,必须用圆括号将 SELECT 语句括起来。

{sql_statement | statement_block}

Transact-SQL 语句或用语句块定义的语句分组。除非使用语句块,否则 IF 或 ELSE 条件只能影响一个 Transact-SQL 语句的性能。若要定义语句块,请使用控制流关键字 BEGIN 和 END。如果在 IF...ELSE 块的 IF 区和 ELSE 区都使用了 CREATE TABLE 语句或 SELECT INTO 语句,那么 CREATE TABLE 语句或 SELECT INTO 语句必须指向是相同的表名。