gpt4 book ai didi

sql - 插入选择案例

转载 作者:行者123 更新时间:2023-12-04 15:45:44 26 4
gpt4 key购买 nike

我有两张 table ,VariablesProcesses .
我想实现一个 INSERT INTO SELECT CASE ,但我以前从未这样做过。

数据来自 VariablesProcesses总是。
但我不知道是什么列。

例如 :
Variables表有以下列:
Variable_ID Set_To_Value_ID
Set_To_Variable_ID
Changed_In_SP
Comment_Input

第一列始终复制到 Processes table 。 Set_To_Value_ID , Set_To_Variable_ID , Changed_In_SP , Comment_Input需要 SELECT CASE因为只有一个人可以有一个值。一行中的三列将始终为空。任何不为空的列都应插入 Processes table :
Processes table :
Process_IDVariable_ID Value_ID - ( Set_To_Value_ID 到这里 )
Manual_Value - ( Set_To_Variable_ID , Changed_In_SPComment_Input 到这里 )
Variable_ID_To_Change转至 Variable_ID .

如何进行?
谢谢你。

最佳答案

Value_ID - ( Set_To_Value_ID goes here ) Manual_Value

Set_To_Variable_ID, Changed_In_SP OR Comment_Input goes here )


您可以使用 COALESCE 像这样的表达:
INSERT INTO Processes 
SELECT
Set_To_Value_ID,
COALESCE(Set_To_Variable_ID, Changed_In_SP, Comment_Input)
FROM Variables
更新:好吧,既然你不能使用 COALESCE为此,这是使用 CASE 执行此操作的规范方法表达:
INSERT INTO Processes
SELECT
Set_To_Value_ID,
CASE
WHEN Set_To_Variable_ID IS NOT NULL THEN Set_To_Variable_ID
WHEN Changed_In_SP IS NOT NULL THEN Changed_In_SP
WHEN Comment_Input IS NOT NULL THEN Comment_Input
END
FROM Variables

关于sql - 插入选择案例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13452139/

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