题
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
不隶属于 StackOverflow