基于模式的SQL数据选择与返回

基于模式的SQL数据选择与返回,sql,select,pattern-matching,sql-server-2000,Sql,Select,Pattern Matching,Sql Server 2000,在我的办公室,我们使用的一个表格记录着我们的订单号。问题是员工在数据库字段中输入的号码不一致。 下面列出了一些示例: '7-26-13 543006-27031', '345009-27031', 'KWYD-863009-27031'. 我需要找到一种方法来返回'nnnnnn-nnnnn'子字符串 不管它在野外的什么地方。大多数情况下,这种模式位于字段的末尾,但情况并非总是如此。我已经在WHERE子句中使用了一个类似的表达式,将数据记录限制为仅具有该模式的数据记录,但我不知道如何最好地将

在我的办公室,我们使用的一个表格记录着我们的订单号。问题是员工在数据库字段中输入的号码不一致。
下面列出了一些示例:

  '7-26-13 543006-27031', '345009-27031', 'KWYD-863009-27031'.
我需要找到一种方法来返回'nnnnnn-nnnnn'子字符串 不管它在野外的什么地方。大多数情况下,这种模式位于字段的末尾,但情况并非总是如此。我已经在WHERE子句中使用了一个类似的表达式,将数据记录限制为仅具有该模式的数据记录,但我不知道如何最好地将该模式作为列返回


编辑:

我们仍在使用SQLServer2000

我希望做的是:

SELECT SUBSTRING(VendorOrderNo, ??, 12) AS OrderNo
FROM Orders
WHERE VendorOrderNo LIKE '%[0-9][0-9][0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9][0-9]%'

如果你先调整你的数据会更好,你可以试试(这是MYSQL的)


您需要添加一个标签,说明您使用的数据库以及一些示例数据,说明可能的输入及其正确的输出将有所帮助。听起来您需要一个案例陈述,但正如Alex所写,您需要举些示例来获得答案。我同意Alex和TwoLegs的观点。如果这最终将成为UPDATE语句的一部分,用于纠正错误的数据输入,那么您也可以提供这方面的一些信息。我还添加了一个关于我要做什么的半查询。
 select 'nnnnnn-nnnnn' as employeeid 
  from table 
 where employees like'%nnnnnn-nnnnn'
SELECT * FROM your_table_name WHERE order_number REGEXP '[0-9]+-[0-9]+';