Sql server 2008 r2 将varchar列值的结果转换为逗号deligma int类型

Sql server 2008 r2 将varchar列值的结果转换为逗号deligma int类型,sql-server-2008-r2,Sql Server 2008 R2,SQL语句: (select top 1 [egrp_name] from [Enotify Group] where [egrp_id] in (a.grp_id) ) a.grp_id的值为“01145”,我得到一个错误 Conversion failed when converting the varchar value '0,1145' to data type int. 有谁能告诉我,在上述情况下,如何将“01145”更改为“01145”它不起作用,以及为什么用“with”替换它。

SQL语句:

(select top 1 [egrp_name] from [Enotify Group] where [egrp_id] in (a.grp_id) )
a.grp_id的值为“01145”,我得到一个错误

Conversion failed when converting the varchar value '0,1145' to data type int.

有谁能告诉我,在上述情况下,如何将“01145”更改为“01145”

它不起作用,以及为什么用“with”替换它。我想得到01145这样的结果,什么意思不起作用?如果要将字符串转换为数字,则需要将、转换为十进制。不,我不想把字符串转换成数字,我想把字符串转换成逗号分隔的整数列表。我以为是一个单一的数字。好吧,祝你好运——在一列中存储多个值总是一件痛苦的事。如果可能的话,你最好改变你的数据库结构。谢谢你的建议,不能改变结构,我正在考虑把grp_id吐出来,然后在循环中调用它
select top 1 [egrp_name] 
from [Enotify Group] 
where [egrp_id] in (cast(replace(grp_id, ',', '.') as decimal))