转换和投射不工作

时间:2017-09-29 13:16:46

标签: sql sql-server-2008

我是新手。我试图将列ID从float更改为varchar但在此处获取错误消息。 "类型名称' Programmer.dbo。'糖尿病患者12年以上$''包含超过最大前缀数。最大值为1。 "这里有什么不对的?

SELECT *       来自[程序员]。[dbo]。['糖尿病患者12年以上$']

  select convert ([Programmer].[dbo].['Diabetic Patient 12 years   ove$'].id as varchar(200))

4 个答案:

答案 0 :(得分:1)

请尝试:

SELECT CAST(id AS varchar(200))
FROM [Programmer].[dbo].[Diabetic Patient 12 years ove$]

OR(强制整数格式)

SELECT CAST(CAST(id AS BIGINT) AS varchar(200))
FROM [Programmer].[dbo].[Diabetic Patient 12 years ove$]

答案 1 :(得分:0)

转换的工作原理如下:

 Convert(VarChar(200), NAME_OF_COLUMN HERE )

Cast会像这样工作:

Cast(NAME_OF_COLUMN HERE As VarChar(200))

我认为它们之间没有任何性能差异,

答案 2 :(得分:0)

你必须做这样的事情:

Select STR(tbl.id) FROM [Programmer].[dbo].[*tablename*] tbl

答案 3 :(得分:0)

试试这个:

SELECT CONVERT(VARCHAR(200), id) FROM [Programmer].[dbo].[your_table]

你只需要一个类型-o。如果你得到这样的错误,最好只读一下你试图做什么命令的例子,在这种情况下CONVERT。 https://docs.microsoft.com/en-us/sql/t-sql/functions/cast-and-convert-transact-sql然后把你自己的列和表放进去。