我需要在数据库中搜索两个特定的值,它们是c1和c5,出现在每一行的注解中。
但是,有些注解包含c128、c523、c100等信息—我不想拉这些注解。
更为复杂的是,有些音符本身包含c1和c5,例如数字后面有空格,但有些音符包含c1和c5,后面有字母,例如c1danny、c5claire、c1run,我确实需要把这些以及那些只说c1和c5的音符都拉出来。
e、 g.数据库
ID Notes
1 C1
2 C128
3 C5
4 C1
5 C1DANNY
6 C25
7 C1RUN
8 C10
9 C523
10 C5!
因此,从上面的数据库中,我只想提取行:1、3、4、5、7和10。
我不想拉任何在第二个数字后面有数字的东西,比如上面的第8行。除了第二个数字后面的数字(如第3行和第10行)之外,我确实想把任何字符都拉出来。
我还应该提到,我一直在读什么通配符,我可以在这里使用https://www.w3schools.com/sql/sql_wildcards.asp 但是我觉得我可能需要使用if语句来循环并精确地检查每个注解中包含的内容,但是数据库相当大(数十万行)。
以前的工作人员已经编写了一些代码。所讨论的代码是:
(
esl.log_text LIKE 'C1%' OR
esl.log_text LIKE 'C5%' OR
esl.log_text LIKE '%' + CHAR(10) + 'C1%' OR
esl.log_text LIKE '%' + CHAR(10) + 'C5%' OR
esl.log_text LIKE '%' + CHAR(13) + 'C1%' OR
esl.log_text LIKE '%' + CHAR(13) + 'C5%'
)
不幸的是,这似乎是拉线,包括c10例如。我是新的sql和堆栈溢出和任何帮助,我可以用什么代码来实现这将是非常感谢。
1条答案
按热度按时间brc7rcf01#
你可以试试这个: