如何检查 SQL Server 2008 table 中字符串列中的 ID

How to check id in a string column in a SQL Server 2008 table

我有一个 table 将其他 table 的整数 ID 存储为逗号分隔的字符串列。现在,我想在此 table 中查找在此字符串列中具有特定 ID 的所有行。

示例

InwardHeader 
(
     inhdrid numeric(18, 0), 
     inwardno numeric(10, 0), 
     inwarddt datetime, 
     item numeric(10), 
     qty numeric(18, 2)
)

StockOutward 
(
    Stkouthdrid numeric(18, 0), 
    stkoutno numeric(18, 0), 
    stkoutdt datetime, 
    item numeric(10), 
    inwardids varchar(100)
)

StockOutward.inwardids 包含多个 InwardHeader.inhdrid

的逗号分隔值

我想从 stockoutward 中查找包含特定值 inwardheader.inhdrid 的行

首先,将 id 存储在以逗号分隔的字符串字段中不是一个好习惯, 你应该使用 1:N 关系, 无论如何,我为您准备了一个解决方案(已测试),如下所示:

SELECT [Stkouthdrid]
      ,[stkoutno]
      ,[stkoutdt]
      ,[item]
      ,[inwardids]
  FROM [test].[dbo].[StockOutward] 
  where  CHARINDEX((
  SELECT convert(varchar(10),[inhdrid])
  FROM [test].[dbo].[InwardHeader]
  where [inhdrid]=0), [inwardids]) > 0

希望对您有所帮助:)