【问题标题】:Add leading zeros with R to a SQL database使用 R 将前导零添加到 SQL 数据库
【发布时间】:2020-04-19 09:49:52
【问题描述】:

要在 R 中为字符串添加前导零,我将使用 formatC() 函数:

x <- c(1, 10, 100, 10000, 100000, 1000000)
formatC(x, width = 8, format = "d", flag = "0")
#> [1] "00000001" "00000010" "00000100" "00010000" "00100000" "01000000"

当我尝试将此应用到 Teradata SQL 数据库时,我收到以下错误(猜测不支持 formatC):

tbl(db_name, "tbl_name") %>% 
  mutate(col5 = formatC(col4, width = 9, format = "d", flag = "0"))
#> Error in new_result(connection@ptr, statement) : 
#>   nanodbc/nanodbc.cpp:7000: 60100: [Teradata][ODBC Teradata Driver]
#> [Teradata Database](-2275)Syntax error: Data Type "col5" does not match a
#>   Defined Type name. In addition: Warning message: 
#>   Named arguments ignored for SQL formatC

当 R 是我的前端时,如何向 Teradata SQL 数据库添加前导零?

【问题讨论】:

  • 在 Teradata SQL 中,to_char(x, '09999999') 用于数字数据,LPAD(TRIM(x), 8, '0') 或字符串。
  • @dnoeth 效果很好!有兴趣把它写成答案吗?

标签: sql r dplyr teradata r-dbi


【解决方案1】:

在 Teradata SQL 中没有名为 formatC 的函数,但您可以使用类似的结果

to_char(x, '09999999') -- numeric x
LPAD(x, 8, '0')        -- varchar x

【讨论】:

    猜你喜欢
    • 2016-07-26
    • 2011-02-03
    • 2020-06-07
    • 1970-01-01
    • 2021-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多