Select a, b, c from table where a in (1, 2, 3)

如果该列表是什么在列?

我尝试,这将错误:

Select a, b, c from a in b

对不起,不清除我的问题。

这不是<强>加入或<强>在(选择表B)

b栏类型是nvarchar的,数据是一个列表,这样 '1,2,5'

色谱柱一个类型是int。

没有正确的解决方案

其他提示

阅读您的问题后,这是你想要什么:

SELECT
    a,b,c
FROM
    tblA
WHERE
    b LIKE CAST(a as nvarchar) + ',%'
    OR b LIKE '%,' + CAST(a as nvarchar) + ',%'
    OR b LIKE '%,' + CAST(a as nvarchar)

这应该这样做。

在正确的方向指向许多答案,但我认为,这将真正的工作:

SELECT a, b, c
FROM table
WHERE ',' + b + ',' LIKE '%,' + CAST(a as varchar) + ',%'

可以通过执行B开始加快这并用逗号结束。甚至更好的,规范的数据库和移动列B到它自己的表有一个一对多的关系。

在SQL中,柱通常是所谓的“标量”的数据类型中的一种:数字,日期/时间,串 - 例如参见 MSDN 。如果您解释在何种意义上你得到了“清单”插入列b,以及如何更好地如向我们展示CREATE TABLE a语句中,我们也许可以帮助您更好!

请参阅需要SQL查询的帮助,匹配的存储过程的参数列表对单个列的。它显示了如何写一个UDF,将您的“列表”一栏,并返回,你可以使用它来加入反对你从选择一个表。

我想你想加入的表?

SELECT a, b, c
FROM a
JOIN b ON a.ID=b.ID
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top