gpt4 book ai didi

sql-server - 在查询的 SELECT 部分使用 IF

转载 作者:行者123 更新时间:2023-12-02 23:55:59 24 4
gpt4 key购买 nike

我需要创建这样的东西

SELECT x.id
, x.name
, x.type
,(
IF x.type = 1
(SELECT SUM(Col1) FROM TableA WHERE ... etc)
ELSE IF x.type = 2
(SELECT SUM(Col2) FROM TableB WHERE ... etc)
) AS Total
FROM TableX as x

所以我尝试根据x.type的值选择不同的子查询

翅膀

最佳答案

尝试使用LEFT JOINCOALESCE。使用 x.type 条件来连接表。

COALESCE (Transact-SQL): Evaluates the arguments in order and returns the current value of the first expression that initially does not evaluate to NULL. https://msdn.microsoft.com/en-us/library/ms190349.aspx

SELECT x.id
, x.name
, x.type
, COALESCE(SUM(TableA.Column), SUM(TableB.Column)) as column_xyz
FROM TableX as x
LEFT JOIN TableA ON x.type = 1 AND ...
LEFT JOIN TableB ON x.type = 2 AND ...

您还可以使用 CASE WHEN ... THEN ... 而不是 COALESCE 来定义要使用的列。

关于sql-server - 在查询的 SELECT 部分使用 IF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39701566/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com