SSIS · 三角函数

3

我试图在SSIS表达式中计算SIN和COS(作为新列),但是找不到任何表达式。

例如:

SIN(lat_org_rad) COS(long_org_rad) ACOS(long_org_rad)

有人可以帮忙吗?

谢谢

2个回答

1
TLDR: 使用SSIS表达式无法实现COS(),SIN(),ACOS(),您需要编写脚本组件来使用.NET框架中的System.Math程序集实现这一点。

详细回答

我写这篇回答是为了补充OP的答案:

SSIS表达式语言包括一组用于表达式的函数,它们可以分为以下几类:

  • 数学函数
  • 字符串函数
  • 日期和时间函数
  • 系统函数

下表(官方文档)列出了SSIS表达式语言支持的数学函数:

enter image description here

基于此,SSIS表达式语言中没有提供COS()SIN()ACOS()函数。

脚本组件

另一方面,您可以通过使用包含高级方法的System.Math程序集的脚本组件转换来获得更高级的数学函数,这些方法在以下文档中列出:


参考文献


0

我能够使用脚本组件解决这个问题:

public override void Entrada0_ProcessInputRow(Entrada0Buffer Row)
{
    if (Row.latdestrad == 0)
    {
        Row.kms = 0;
    }
    else
    {
        Row.kms = Math.Acos(
            (Math.Sin(Row.latorgrad) * (Math.Sin(Row.latdestrad))) +
            (Math.Cos(Row.latorgrad) * (Math.Cos(Row.latdestrad)) * Math.Cos(Row.londestrad - Row.lonorgrad)))
            * 57.29577951 * 111.302;
    }
}

作为脚本组件。非常简单,将kms添加为新列。 - user3868641

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接