sql-根据列的值为变量指定不同列的值

tez616oj  于 2021-07-27  发布在  Java
关注(0)|答案(1)|浏览(217)

我不熟悉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 声明?
谢谢!

kxxlusnw

kxxlusnw1#

我想你只是想 case 表达式:

select (case when newctry <> ' ' then newctry else mailingcountry end) as countryname

相关问题