select case mysql,如何在表达式中使用Mysql SELECT CASE

I am trying to use a select case statement on mysql DB.

SELECT

t.name, t.colour,

CASE WHEN (Amount < 0) AS small, CASE WHEN (Amount > 0) AS large FROM t

Error:

......for the right syntax to use near 'AS small, CASE (Amount > 0)

I want my output like so

Name Colour Small Large

item1 red -35

item2 blue 48

etc.

Been trying with no luck. Help please.

解决方案

Here it is:

SELECT

t.name,

t.colour,

CASE WHEN (t.Amount < 0) THEN t.Amount END AS small,

CASE WHEN (t.Amount > 0) THEN t.Amount END AS large

FROM t

Understanding CASE WHEN:

Example #1:

Suppose,

IF n < 0 THEN

'N is negative'

else if n == 0 THEN 'N is Zero'

else 'N is positive'

Let's convert this if-else if chain in MySQL using CASE WHEN expression:

SET @n := -9;

SELECT

CASE WHEN @n <0 THEN 'N is Negative'

WHEN @n =0 THEN 'N is 0'

ELSE 'N is positive' END AS output;

Output:

output

N is Negative

Example #2:

Now we want to convert the following three if statements in MySQL

IF n <0 THEN 'N is Negative'

IF n == 0 THEN 'N is Zero'

IF n > 0 THEN 'N is Positive'

SET @n := 5;

SELECT

CASE WHEN @n <0 THEN 'N is Negative' END AS negativeOutput,

CASE WHEN @n =0 THEN 'N is 0' END AS zeroOutput,

CASE WHEN @n > 0 THEN 'N is positive' END AS positiveOutput;

Output:

Now the output has three columns:

negativeOutput zeroOutput positiveOutput

N is positive

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL数据库SELECT是用于从一个或多个表检索数据的关键字。SELECT查询表达式的基本语法如下: ```sql SELECT column1, column2, ... FROM table_name WHERE condition; ``` 其,column1、column2等为要检索的列名,可以使用通配符*代替所有列。table_name为要检索的表名,condition为可选的筛选条件。 在SELECT查询表达式,可以使用多种表达式来生成结果集。以下是一些常用的SELECT表达式: 1. 聚合函数:用于对结果集进行统计计算,例如SUM、COUNT、AVG、MAX、MIN等。 ```sql SELECT SUM(column_name) FROM table_name; ``` 2. 别名:用于为查询结果的列或表指定别名,以便更好的阅读和理解查询结果。 ```sql SELECT column_name AS alias_name FROM table_name; ``` 3. 子查询:嵌套在SELECT语句的查询语句,用于从子查询获取数据,然后在主查询使用它。 ```sql SELECT column_name FROM table_name WHERE column_name IN (SELECT column_name FROM table_name WHERE condition); ``` 4. 连接:用于将两个或多个表的数据合并到一个结果集,包括INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL OUTER JOIN等。 ```sql SELECT column_name FROM table1 INNER JOIN table2 ON table1.column_name = table2.column_name; ``` 5. 字符串函数:用于处理字符串数据,例如CONCAT、LENGTH、SUBSTRING、UPPER、LOWER等。 ```sql SELECT CONCAT(first_name, ' ', last_name) AS full_name FROM table_name; ``` 6. 条件表达式:用于根据条件过滤结果集,例如IF、CASE等。 ```sql SELECT column_name, IF(column_name > 10, '大于10', '小于等于10') AS result FROM table_name; ``` 以上是MySQL数据库常用的SELECT查询表达式,可以根据实际需求选择使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值