使用 R 添加前导零到 SQL 数据库
Add leading zeros with R to a SQL database
要向 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 中没有名为 formatC
的函数,但您可以使用
获得类似的结果
to_char(x, '09999999') -- numeric x
LPAD(x, 8, '0') -- varchar x
要向 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 中没有名为 formatC
的函数,但您可以使用
to_char(x, '09999999') -- numeric x
LPAD(x, 8, '0') -- varchar x