【问题标题】:Teradata REPLICATE function?Teradata REPLICATE 功能?
【发布时间】:2016-12-19 01:48:15
【问题描述】:

我正在将 MS SQL Server 代码转换为 Teradata。 我发现 Teradata 没有复制功能。 下面是示例代码

REPLICATE('0',2-LEN(CAST(COLUMN_NAME AS NVARCHAR)))

在 Teradata 中是否有用于复制的替代功能?

谢谢

【问题讨论】:

  • 还有LPAD/RPAD,可以类似使用。但是这段代码实际上是做什么用的,COLUMN_NAME 是什么数据类型?
  • xyproblem.info 你在这里没有得到正确的解决方案。
  • 附言。我不会让@dnoeth 等待。我向你保证,这不会是你最后一次寻求他的帮助 :-)

标签: sql teradata replicate


【解决方案1】:

试试这个:

SUBSTR('00', 1, 2-CHARACTER_LENGTH(CAST(COLUMN_NAME AS VARCHAR(10)))

这将重复字符'0' 减去列的长度,这实际上与 SQL Server 中的REPLICATE 执行相同的操作。

【讨论】:

  • 这成功了!我只是添加了零(以防万一需要更多)。对了,既然TD中没有nvarchar,那么VARCHAR(10)是不是等价的呢?
  • @user2331719 我在 Teradata 方面不够专业,无法给你一个准确的答案,尽管CHARACTER_LENGTH 应该给你字符数,而不管列的大小。因此,只需确保列足够宽,以便所有信息都能在演员表中保留下来。
  • 注明。再次感谢。
  • 我相信 VARCHAR(10) CHARACTER SET UNICODE 将等同于 nvarchar(10)。在许多情况下,您可能仍然可以使用 VARCHAR(10)
【解决方案2】:

一般等价物是:

select LPAD('0', needed_length, '0');

【讨论】:

  • 更好的答案。谢谢!
猜你喜欢
  • 1970-01-01
  • 2020-12-18
  • 2020-12-23
  • 2020-06-08
  • 2018-05-05
  • 2019-01-03
  • 2021-07-21
  • 2013-10-21
  • 2011-12-28
相关资源
最近更新 更多