1

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

  '7-26-13 543006-27031', '345009-27031', 'KWYD-863009-27031'.

我需要找到一种方法来只返回 'nnnnnn-nnnnn' 子字符串,无论它在字段中的哪个位置。大多数情况下,这种模式处于该领域的尽头,但并非总是如此。我已经在 WHERE 子句中使用 LIKE 表达式将数据记录限制为具有该模式的数据记录,但我不知道如何最好地将该模式作为列返回。


编辑:

我们仍在使用 SQL Server 2000

我想要做的是:

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]%'
4

2 回答 2

0

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

SELECT * FROM your_table_name WHERE order_number REGEXP '[0-9]+-[0-9]+';

SQLFIDDLE

于 2013-08-08T16:44:02.683 回答
0
 select 'nnnnnn-nnnnn' as employeeid 
  from table 
 where employees like'%nnnnnn-nnnnn'
于 2013-08-08T16:29:39.290 回答