如何使用正则表达式搜索特定数字

时间:2018-11-22 10:25:12

标签: sql sql-server

表中的每一行都有一个逗号分隔的值。 假设在测试表中

Value
1,5,12
2,4,15
5,2,6

我想查找值= 5的记录 使用普通的ms sql,我使用过like运算符,该运算符给了我所有3条记录。 如果可以使用正则表达式,请提供帮助。

2 个答案:

答案 0 :(得分:0)

也尝试一下。看起来效率不高,但是可以正常工作。

    /* Create a table called NAMES */
   CREATE TABLE test(Id integer PRIMARY KEY, Name text);

  /* Create few records in this table */
 INSERT INTO test VALUES(1,'1,5,12');
 INSERT INTO test VALUES(2,'2,4,15');
 INSERT INTO test VALUES(3,'5,2,6');
 INSERT INTO test VALUES(5,'1,2,5');
-- SELECT * FROM test;

SELECT * from test WHERE Name LIKE '%,5,%' OR 
 Name LIKE '%5,%' OR 
 Name LIKE '%,5%'; 

答案 1 :(得分:0)

您可能已经知道这是一种错误的数据格式,应该对其进行修复。如果坚持使用,可以使用like

SELECT t.* 
FROM test t
WHERE ',' + Name + ',' LIKE '%,5,%';