简单的 SQL if/else 子句失败

Posted

技术标签:

【中文标题】简单的 SQL if/else 子句失败【英文标题】:Simple SQL if/else clause fails 【发布时间】:2010-12-31 11:28:29 【问题描述】:

我正在尝试在 sql 中执行一个简单的 if/else 子句(使用 mysql/phpmyadmin 运行)。但我明白了 1064 - 您的 SQL 语法有错误

SET @age = 50;

IF @age >  60
THEN 
Select `table1`.`Name` FROM table1 WHERE `Age` = 'Old'
ELSE
Select `table1`.`Name` FROM tablel WHERE `Age` = 'NotSoOld'
END IF;

怎么了?

【问题讨论】:

不知道。你可以改写为Select table1.Name FROM tablel WHERE Age = CASE WHEN @age > 60 THEN Old ELSE NotSoOld END MySQL 确实有一些非常有用的错误消息。很棒,尤其是当你有 700 行 SQL 代码时,an error in its syntax 【参考方案1】:

tablel(L 减号)而不是 table1(第一个)?

【讨论】:

+1 好地方,尽管我认为这不会产生语法错误。【参考方案2】:

我用 case 语句代替了它。感谢马丁的线索! SQL: IF clause within WHERE clause

【讨论】:

以上是关于简单的 SQL if/else 子句失败的主要内容,如果未能解决你的问题,请参考以下文章

如何在 SQL 查询中动态跳过没有 If else 的 where 子句?

ms sql server中where子句中的if else条件

sql server 使用 where 和 if else 条件

如何在 WHERE 子句中使用 IF ELSE

下面这个if else语句应该理解为几层嵌套?

在oracle sql语句里有没有if...else...的用法,请各位大侠给个例子看看,灰常感谢!!