Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql sql select语句中的Case语句_Mysql - Fatal编程技术网

Mysql sql select语句中的Case语句

Mysql sql select语句中的Case语句,mysql,Mysql,在上面的select语句中,我正在创建一个名为 新的_列及其值应基于case语句中的条件。 当我运行此查询时,“NEW_column”值返回为NULL。有人能帮我解决这个逻辑错误吗?你需要写column1为null类似地column1不为null SELECT column1, column2, (CASE WHEN column1=NULL THEN @NEW_column =column2 WHEN column1!=NULL THEN @NEW_column =column1 END)

在上面的select语句中,我正在创建一个名为
新的_列及其值应基于case语句中的条件。
当我运行此查询时,“NEW_column”值返回为NULL。有人能帮我解决这个逻辑错误吗?

你需要写
column1为null
类似地
column1不为null

SELECT
column1,
column2,
(CASE WHEN column1=NULL THEN @NEW_column =column2
WHEN column1!=NULL THEN @NEW_column =column1
END) AS NEW_column,
FROM my_table
输出:

SELECT
   column1,
   column2,
   CASE WHEN column1 is NULL THEN column2
   WHEN column1 is not NULL THEN column1
   END AS NEW_column,
FROM my_table

这意味着你的条件没有任何价值

有几种方法可以调试您的SQL语句:

样品

col1    col2    newcol
3       null    3
null    4       4
5      null     5

新的_列仍然返回空值。请在您的问题中提供一些示例数据,这样就很容易理解@bhavanadixit的实际错误了。我的表中有两列是column1和column2。情况是,每个记录中的column1和column2都将为null(记录中的column1和column2不能同时为null)。我想计算一个新的_列,它从列1或列2中选择不为null的值。@BhavanaDixit-检查这里-ISNULL()函数根据表达式是否为null返回1或0-您可以将字符串设置为默认值。或者使用COALESCE()
SELECT
column1,
column2,
ISNULL(column1,column2) AS NEW_column 
FROM my_table