在获得特定条件后如何在一个字符串中获取一些数据

时间:2010-11-12 12:06:56

标签: sql-server sql-server-2000

我在一栏中有一个搅拌器。列名是PreviousStageIDs。在本专栏中,我有一个字符串数据为12150,13250。我想使用quama作为条件运行SQL语句以分隔12150。当quama发现时,这个字符串意味着sql必须在quama之前获取所有数据。 在这件事上帮助我.... 提前谢谢。

... JAY

12150没有修复一次它是12150第二次它将是14830.我只想采取逗号之前的那个字符串。

JAY

1 个答案:

答案 0 :(得分:1)

如果我理解(编辑过的)问题,您希望在逗号分隔的列PreviousStageIds ='12150'中找到 first 子字符串的所有行。为此,您将使用SUBSTRING()和CHARINDEX()函数。

如果子字符串'12150'可以在字符串中任何地方出现,而不仅仅是第一个子字符串,那么你必须使用带有通配符的LIKE运算符,并且快速的kludge是预先添加和附加逗号到字符串:

   ... where  ',' + PreviousStageIds + ',' LIKE '%,12150,%'

您可能还需要修剪字符串中的额外空格。

在关系数据库中存储以逗号分隔的列表通常是最糟糕的做法。