【发布时间】:2014-02-01 15:52:20
【问题描述】:
我想知道如何在MySQL 的 select 语句中使用 if 语句来执行以下操作:
我有一个包含 8 列的表,我想在创建 view 时更改这些值。例如:我有一个名为Temperature 的列,我想在View 创建期间更改-50 to NULL 以下的值。
我如何使用IF 语句来做到这一点?还是有其他方法?
【问题讨论】:
我想知道如何在MySQL 的 select 语句中使用 if 语句来执行以下操作:
我有一个包含 8 列的表,我想在创建 view 时更改这些值。例如:我有一个名为Temperature 的列,我想在View 创建期间更改-50 to NULL 以下的值。
我如何使用IF 语句来做到这一点?还是有其他方法?
【问题讨论】:
ANSI 标准语法是case:
select (case when temperature >= -50 then temperature end) as temperature
如果没有else 子句,默认为NULL。
【讨论】:
用CASE试试这个
CREATE
/*[ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
[DEFINER = { user | CURRENT_USER }]
[SQL SECURITY { DEFINER | INVOKER }]*/
VIEW `db`.`test` AS
(SELECT
col,
col2,
(
CASE
WHEN col3 < - 50
THEN NULL
ELSE col3
END
) col3
FROM
...) ;
【讨论】: