我不熟悉sql server。我的编程背景是sas。我目前正在使用SQLServerManagementStudio v18.5。我正在尝试确定如何解决几个问题:
我想为现有列分配新变量,具体取决于这些列的值。我读过关于使用set和select声明变量的文章,但是我在将这些信息转换为我需要做的事情时遇到了困难。我有一个包含几千条记录的视图。我希望变量逻辑应用于视图中的每个记录。所需的结果是,我创建了一个新视图,其中只包含新变量名和其他相关数据,不包括原始列名。
在sas中,我的代码如下所示:
If newctry<>' ' then countryname = newctry;
else countryname = mailingcountry;
现有列是 newctry
以及 mailingcountry
. 列 newctry
只有当 mailingcountry
值无效,否则记录值为空。
这种情况我有不同的例子。我需要为每个示例创建子查询吗?如果有人能提供一个在sql中如何工作的例子,我将非常感激。我尝试过的sql代码示例如下:
DECLARE @countryname VARCHAR(50)
SELECT recordid, recorddate, newctry, mailingcountry
FROM viewname
SELECT @countryname = newctry FROM viewname WHERE newctry <> ' ']
SELECT @countryname = mailingcountry FROM viewname WHERE newctry = ' '
我的另一个问题是,当我包含多个错误时,我收到了错误 CASE
不同类型的语句 END
名单上的名字 Select
声明。我是否需要每个子查询 CASE
声明?
谢谢!
1条答案
按热度按时间kxxlusnw1#
我想你只是想
case
表达式: