Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.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
Sql server 如何使用不同头名称的SQL CASE语句中的和_Sql Server_Tsql - Fatal编程技术网

Sql server 如何使用不同头名称的SQL CASE语句中的和

Sql server 如何使用不同头名称的SQL CASE语句中的和,sql-server,tsql,Sql Server,Tsql,我需要在SQL视图中检查一个条件,如果条件为真,我需要更新两个列值,并且这两个列都需要自定义标题名 我假设CASE在这里可以工作,但我不确定如何实现这一点 比如说, CASE WHEN A2016.OpExp IS NULL THEN A2015.OpExp ELSE A2016.OpExp END AS 'OPEX' 这里,当A.2016为空时,在当时的部分中,我希望A2015.OpExp为“OPEX”,A.Year=2015为“Year” 如果我在这种情况下使用CASE的决定是错误的,也请

我需要在
SQL视图中检查一个条件,如果条件为真,我需要更新两个列值,并且这两个列都需要自定义标题名

我假设
CASE
在这里可以工作,但我不确定如何实现这一点

比如说,

CASE WHEN A2016.OpExp IS NULL THEN A2015.OpExp ELSE A2016.OpExp END AS 'OPEX'
这里,当A.2016为空时,在当时的部分中,我希望A2015.OpExp为“OPEX”,A.Year=2015为“Year”


如果我在这种情况下使用
CASE
的决定是错误的,也请给出建议。

当CASE结束时,有两种可能的语法:

CASE variable
    WHEN value1 then result1
    WHEN value2 then result2...
END

例如,第二个接受“AND”作为条件的一部分

CASE
   WHEN X = 0 AND Y = 0 THEN 'On the origin'
   WHEN X = 0 AND Y <> 0 THEN 'On the X axis'
   WHEN X <> 0 AND Y = 0 THEN 'On the Y axis'
   ELSE 'Somewhere over the rainbow'
END

CASE WHEN THEN END有两种可能的语法:

CASE variable
    WHEN value1 then result1
    WHEN value2 then result2...
END

例如,第二个接受“AND”作为条件的一部分

CASE
   WHEN X = 0 AND Y = 0 THEN 'On the origin'
   WHEN X = 0 AND Y <> 0 THEN 'On the X axis'
   WHEN X <> 0 AND Y = 0 THEN 'On the Y axis'
   ELSE 'Somewhere over the rainbow'
END

假设“customheader”表示列别名(
AS
子句),则不能在视图中动态更改该别名。视图列名和数据类型元数据在创建视图时确定。返回的值可能会有条件地不同,正如您对
大小写表达式所做的那样。

假设“custom header”表示列别名(
as
子句),则无法在视图中动态更改该值。视图列名和数据类型元数据在创建视图时确定。返回的值可能会有条件地不同,就像您对
CASE
表达式所做的那样。

添加您的表架构和您尝试过的查询如何?您所说的“自定义头名称”是什么意思?不清楚您在问什么。请出示一些样本表数据和预期结果。如果我不清楚,很抱歉。自定义标题是指使用AS子句为列指定的名称。通常这是在结束CASE语句后给出的,但在我的情况下,每个列都需要它。在这种情况下,它看起来将满足您的需要:
Coalesce(A2016.OpExp,A2015.OpExp)作为[OpEx]
。第二列(
[Year]
)在Y.Ecarri的回答中得到了优雅的处理。添加您的表架构和您尝试过的查询如何?您所说的“自定义头名称”是什么意思?不清楚您在问什么。请出示一些样本表数据和预期结果。如果我不清楚,很抱歉。自定义标题是指使用AS子句为列指定的名称。通常这是在结束CASE语句后给出的,但在我的情况下,每个列都需要它。在这种情况下,它看起来将满足您的需要:
Coalesce(A2016.OpExp,A2015.OpExp)作为[OpEx]
。第二栏(
[Year]
)在Y.Ecari的回答中得到了优雅的处理。