如何在 sql 查询中将变量用作子句?
How can I use a variable as a clause in sql query?
我对 sql 和编程还比较陌生,所以请耐心等待。
我有一个 table,其中有类似于以下的三列:
penID inkID color
01 2 red
02 2 red
03 2 red
04 1 blue
05 1 blue
06 3 black
07 3 purple
08 -5 yellow
每支笔都有一个唯一的 penID,每支 inkID 都应该对应于它的正确颜色(每支 inkID=2 的笔都应该只对应于红色)但是我们有一些异常需要我追踪。
现在,假设我有数千个不是连续数字集的 inkID(我们可以有 2,6,7,8,11..
)
我所做的是查询以获取所有可用 InkID 的列表,而不是我想 运行 针对每个 InkID 的另一个查询以验证同一 inkID 是否有不同的颜色。
因为我有数千个,所以我不知道如何在不必手动编写一千个查询(不是机会)的情况下做到这一点。
我正在考虑使用 c# 框架将我的第一个查询的输出存储在列表中,并将第二个查询中的每个列表项作为变量传递,但我不知道这是否可能。
这是我到目前为止的第二个查询:
Select distinct Color
from TableName
where InkID = 12
(为了便于讨论,假设为 12)
有什么建议吗?还有其他方法可以使用吗?
提前致谢
如果你这样做
SELECT inkID, COUNT(DISTINCT color)
FROM TableName
GROUP BY inkID
HAVING COUNT(DISTINCT color) > 1;
这将 return 分配了一种以上颜色的所有 InkID。
我对 sql 和编程还比较陌生,所以请耐心等待。
我有一个 table,其中有类似于以下的三列:
penID inkID color
01 2 red
02 2 red
03 2 red
04 1 blue
05 1 blue
06 3 black
07 3 purple
08 -5 yellow
每支笔都有一个唯一的 penID,每支 inkID 都应该对应于它的正确颜色(每支 inkID=2 的笔都应该只对应于红色)但是我们有一些异常需要我追踪。
现在,假设我有数千个不是连续数字集的 inkID(我们可以有 2,6,7,8,11..
)
我所做的是查询以获取所有可用 InkID 的列表,而不是我想 运行 针对每个 InkID 的另一个查询以验证同一 inkID 是否有不同的颜色。
因为我有数千个,所以我不知道如何在不必手动编写一千个查询(不是机会)的情况下做到这一点。 我正在考虑使用 c# 框架将我的第一个查询的输出存储在列表中,并将第二个查询中的每个列表项作为变量传递,但我不知道这是否可能。
这是我到目前为止的第二个查询:
Select distinct Color
from TableName
where InkID = 12
(为了便于讨论,假设为 12)
有什么建议吗?还有其他方法可以使用吗?
提前致谢
如果你这样做
SELECT inkID, COUNT(DISTINCT color)
FROM TableName
GROUP BY inkID
HAVING COUNT(DISTINCT color) > 1;
这将 return 分配了一种以上颜色的所有 InkID。