出于迁移目的,我需要将现有 ID 从旧数据库迁移到 MS SQL Server 中的新表。
我可以在 MS SQL Server 中截断我的表,然后将我在 Pentaho 中的数据库连接调整为“SET IDENTITY_INSERT tablename ON”。然后我可以通过表输出步骤插入我的 ID,但我希望能够更新我现有的 ID 而不会在 MS SQL Server 中截断我的表。
这可以使用 Pentaho 实现吗?
出于迁移目的,我需要将现有 ID 从旧数据库迁移到 MS SQL Server 中的新表。
我可以在 MS SQL Server 中截断我的表,然后将我在 Pentaho 中的数据库连接调整为“SET IDENTITY_INSERT tablename ON”。然后我可以通过表输出步骤插入我的 ID,但我希望能够更新我现有的 ID 而不会在 MS SQL Server 中截断我的表。
这可以使用 Pentaho 实现吗?
我正在尝试使用字符串拆分来传递列名,因为我需要该表中的值才能与另一个表连接。
我已经在 Postgresql 中实现了这一点,我从这些列中获取了值:
SELECT unnest(array["column_name1","column_name2","column_name3" AS "amount"
FROM table1
unnest 与列名周围的引号相结合,为每个值返回一个数组到一组行。
Amount
307579.00
25579.00
212871.00
现在我想在 MS Server 中做同样的事情:
DECLARE @amount NVARCHAR(50) = 'column_name1/column_name2/column_name3'
SELECT "value" from string_split(@amount,'/')
但这只会给我文字字符串:
Amount
column_name1
column_name2
column_name3
我一直在尝试和搜索如何传递一个 elemant,它将读取为列名并像第一个示例一样在一个列中显示值,也许我不应该使用字符串拆分器等。有点卡在这个..
我想生成一系列月份。开始应该是当年的第一个月,停止是当前日期,间隔为 1 个月。
我使用了函数 generate_series(见下文),它给了我想要的结果,但我不希望开始日期被硬编码。它应该根据它所在的年份而变化。
select to_char(generate_series('2018-1-1'::date,
now()::date,
'1 month'), 'YYYYmm') as dat
输出:
201801
201802
201803
201804
201805
201806
201807
201808
201809
201810
关于如何解决这个问题的任何想法?