c# - 比较值时的 SQL IN 子句问题
问题描述
我在表 x 中有以下列,其中 SharedBagsIds 包含字符串 (1,3,4)
我正在尝试编写一个包含 in 子句的 SQL 查询,如下所示
select * from .... where id in (x.SharedBagsIds)
但是这条线id in (x.SharedBagsIds)
正在产生错误
Conversion failed when converting the varchar value '1,3,4' to data type int.
有没有办法解决这个问题?
解决方案
您的表格不是第一范式,它规定每个单元格都应该是原子的。'SharedBagsIds' 包含多个值,应始终避免。阅读 SQL 中的多对多关系并相应地修改表。
假设我有表 Teacher 和另一个表 student,然后为了显示它们之间的关系,创建另一个表,其中包含 teacherid 和 studentid 作为复合主键。因此,您可以显示单独的映射,而无需在单个单元格中放置多个 id,例如 1、3、4。
希望这可以帮助。
推荐阅读
- powerbi - 如何将日期表(日期类型列)连接到事实表日期(日期时间类型列)类型?
- python - Python:在另一个函数中定义一个函数
- r - 根据条件更改列的值(缺失数据和分类)
- java - 如何将两个全局变量添加到 groovy 文件中?
- r - 在 R 中按下一个带有 RSelenium 的按钮。Web 抓取 Google Play
- java - 当运行带有 -jar 选项的 java 命令时,是否可以使用 -cp 提供其他库?
- python - 类型错误:tick_params() 缺少 1 个必需的位置参数:'self'
- sql - 在 SQL Server 中使用插入语句优化必要的 while 循环
- prolog - 使用谓词解决序言中的 kakuro
- firebase - Firestore - 保存查询结果