我在下方的 varchar 中有Customer_Telephone_Number值。
Customer_Telephone_Number值:(222)-3333-333
INSERT INTO DATABASE_1.dbo.CUSTOMER_TABLE
(
Customer_Telephone_Number
)
Select
CONVERT(BIGINT,Customer_Telephone_Number)
from
DATABASE_2.DBO.CUSTOMER_TABLE
如果ı尝试将Customer_Telephone_Number值插入Database_1,我将获得以下异常。
Error converting data type varchar to bigint.
那么我该如何解决这个问题,还是可以删除“(”和“)”来解决问题?
任何帮助都将非常感谢。
谢谢。
答案 0 :(得分:2)
快速而肮脏的方式是:
Select
CONVERT
(
BIGINT,
REPLACE
(
REPLACE
(
REPLACE
(
REPLACE
(
Customer_Telephone_Number,
' ',--Replace white spaces
''
),
'-',--Replace dashes
''
),
'(',--Replace open parenthesis
''
),
')',--Replace close parenthesis
''
)
)
from
DATABASE_2.DBO.CUSTOMER_TABLE
您可以运行以下命令以查看其他潜在字符:
select Customer_Telephone_Number
from DATABASE_2.DBO.CUSTOMER_TABLE
where ISNUMERIC
(
REPLACE
(
REPLACE
(
REPLACE
(
REPLACE
(
Customer_Telephone_Number,
' ',--Replace white spaces
''
),
'-',--Replace dashes
''
),
'(',--Replace open parenthesis
''
),
')',--Replace close parenthesis
''
)
) = 0
这将为您提供无法转换为BIGINT
的电话号码列表。检查原因(例如,如果他们中有.
)并在REPLACE中添加这些字符,就像我在示例中所做的那样。