Sql 基于select语句使用值计算字段
我目前有一个select语句,它返回主要的客户编号 我想为那些返回的人做些什么,我想为customerRole创建另一个专栏。对于customerRole,该值应为主要值或次要值 我当前的select语句是基于该select语句的主语句。我想有一个customerRole列,将这些列显示为主列。然后,我想将这个列与我的另一个select语句一起使用,以显示那些是次要的。当它们一起运行时,我希望看到如下内容: 帐号:1234455客户角色:主要Sql 基于select语句使用值计算字段,sql,sql-server,Sql,Sql Server,我目前有一个select语句,它返回主要的客户编号 我想为那些返回的人做些什么,我想为customerRole创建另一个专栏。对于customerRole,该值应为主要值或次要值 我当前的select语句是基于该select语句的主语句。我想有一个customerRole列,将这些列显示为主列。然后,我想将这个列与我的另一个select语句一起使用,以显示那些是次要的。当它们一起运行时,我希望看到如下内容: 帐号:1234455客户角色:主要 账号:3245454客户号:二级 有人知道我怎样才能
账号:3245454客户号:二级 有人知道我怎样才能做到这一点吗?以下是我选择获取主要号码的步骤:
SELECT
F.CustomerNumber
FROM ods.CustomerFact F
JOIN ods.holderDim AD
ON F.HolderRowNumber = AD.HolderRowNumber
JOIN ods.holderOwesDim B
ON F.PrimaryHolderNumber = B.SecondaryHolderNumber
我想您需要一个
案例
表达式:
SELECT c.CustomerNumber,
(CASE WHEN EXISTS (SELECT 1
FROM ods.holderDim hd
WHERE c.PrimaryHolderNumber = hd.SecondaryHolderNumber
) AND
EXISTS (SELECT 1
FROM ods.holderOwesDim hod
WHERE c.PrimaryHolderNumber = hod.SecondaryHolderNumber
THEN 'Primary' ELSE 'Secondary'
)
END) as role
FROM ods.CustomerFact c;
“其他选择语句”…您能显示它吗?“一起跑”…到底是怎么回事?你是说工会声明?请讲清楚。我们不知道您的应用程序、数据结构等。无论如何,听起来您只是想执行类似于
SELECT F.CustomerNumber、[CustomerRole]=“Primary”
的操作,以便为从SELECT语句返回的所有行输出相同的固定值,但这并不完全清楚。样本数据和预期结果可能会有所帮助。就您的数据结构而言,“主要”和“次要”实际上意味着什么还不清楚,也不清楚为什么不能在一次选择中同时输出这两种类型的数字-如果它们都是用户可以担任的角色,它们不是存储在同一个表中吗?我觉得在表结构方面有点不对劲,但我知道的还不够确定。我相信你是对的,但是从THEN子句开始出现了一个错误,你知道为什么吗?