我有一个表,该表存储其他表的整数ID作为逗号分隔的字符串列。现在,我想在此表中查找此字符串列中具有特定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