【发布时间】:2018-11-12 03:02:21
【问题描述】:
对不起,我一直在努力寻找答案,但论坛中的大多数问题都与转换一个值有关,而不是整个集合。
我正在尝试将子查询值传递给主查询,但子查询返回 varchar 并且主查询列正在接受 smallint。我尝试了投射和转换,但没有帮助。
select time_off_type_no
from schedtime
where activity_no in (select AT_NUMBERS from ACTIVITY where AT_ID = 105)
此查询引发以下异常
将 varchar 值 '483,484,485,486,487,488,489' 转换为数据类型 smallint 时转换失败
任何关于如何转换值的建议都非常感谢。
以下查询返回“483,484,485,486,487,488,489”,我想将所有值转换为 SmallInt 或 int 以将其传递给主查询。
select AT_NUMBERS
from ACTIVITY
where AT_ID = 105
【问题讨论】:
-
搜索以逗号分隔的列表为多个值
-
@MatBailie,我只想要 '483,484,485,486,487,488,489' 到 483,484,485,486,487,488,489,因为我在主查询中将此值作为 int 传递,例如“where activity_no in (483,484,485,486,487,48)”
-
是的,你必须把那个 SINGLE STRING 变成许多整数的列表......
-
谢谢大家,正如你们建议的那样,我将字符串传递给函数并拆分值并将所有值返回为 int,效果很好
标签: sql sql-server