【问题标题】:Stored procedure - select ID from a table and match it with comma separated ID from different table [duplicate]存储过程 - 从表中选择 ID 并将其与来自不同表的逗号分隔 ID 匹配 [重复]
【发布时间】:2018-03-04 11:55:56
【问题描述】:

我正在编写一个存储过程,我想从一个表中选择多个 ID,其中从逗号分隔值 (1,2,3,6) 的另一个表中找到 id。

这就是我想要写的。但它没有按预期工作。

SELECT [Name]  
FROM [Table1] t1 
INNER JOIN [Table2] t2 ON REPLACE(t1.[ID], ',', '') = t2.[ID]

【问题讨论】:

  • 像存储过程这样的过程代码是高度特定于供应商的 - 所以请添加一个标签来指定您是否使用mysqlpostgresqlsql-serveroracledb2 - 或完全不同的东西。

标签: sql-server select stored-procedures inner-join comma


【解决方案1】:

这就是答案

SELECT [Name]
FROM [Table1] t1 
INNER JOIN [Table2] t2
ON ',' + t1.[ID] + ',' like '%,' + cast(t2.[ID] as nvarchar(20)) + ',%'

【讨论】:

  • 没有。这是一种解决方法。正确的答案是规范化数据库,永远不要将值存储为逗号分隔的文本。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多