gpt4 book ai didi

sql-server - 在派生列中嵌套IF ELSE

转载 作者:行者123 更新时间:2023-12-01 23:36:03 24 4
gpt4 key购买 nike

我有以下逻辑将日期存储在BI_StartDate中,如下所示:

  • 如果UpdatedDate不为null,则BI_StartDate=UpddatedDate
  • 如果BI_StartDate为null,则ELSE EntryDate采用EntryDate
    然后BI_StartDate=CreatedDate
  • 如果CreatedDate为NULL,则BI_StartDate=GetDATE()

  • 我正在使用派生列,如下所示:
    ISNULL(UpdatedDateODS)  ? EntryDateODS : (ISNULL(EntryDateODS) ? CreatedDateODS :
    (ISNULL(CreatedDateODS) ? GETDATE() ))

    我收到此错误:

    表达式“ISNULL(UpdatedDateODS)?EntryDateODS:
    (ISNULL(EntryDateODS)?CreatedDateODS:(ISNULL(CreatedDateODS)?
    GETDATE()))”上的“派生列.Outputs [派生列
    输出] .Columns [派生列1]“无效。

    最佳答案

    您正在查找的第一个非null是SSIS数据流(派生列)中不存在的合并。

    我建议一个非常简单的脚本组件:

    Row.BIStartDate = Row.UpdateDate ?? Row.EntryDate ?? Row.CreatedDate ?? DateTime.Now;

    这是“输入列”屏幕:

    enter image description here

    这是输入和输出:

    enter image description here

    然后将上面的代码添加到“行处理”部分:
    public override void Input0_ProcessInputRow(Input0Buffer Row)
    {
    /*
    * Add your code here
    */

    Row.BIStartDate = Row.UpdateDate ?? Row.EntryDate ?? Row.CreatedDate ?? DateTime.Now;
    }

    关于sql-server - 在派生列中嵌套IF ELSE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60307858/

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