2

我有以下正则表达式:

 ^((\d{4}TS\d{0,4}[A-Z0-9]))$

我需要将其转换为 SQL 语句,例如

  SELECT DISTINCT field1 FROM WHERE LIKE Mask ORDER BY field2
4

1 回答 1

8

使用 MS Access 语法:

SELECT DISTINCT field1
FROM Table1
WHERE field1 LIKE '####TS[A-Z0-9]'
OR field1 LIKE '####TS#[A-Z0-9]'
OR field1 LIKE '####TS##[A-Z0-9]'
OR field1 LIKE '####TS###[A-Z0-9]'
OR field1 LIKE '####TS####[A-Z0-9]'
ORDER BY field2

使用 SQL Server 语法:

SELECT DISTINCT field1
FROM Table1
WHERE field1 LIKE '[0-9][0-9][0-9][0-9]TS[A-Z0-9]'
OR field1 LIKE '[0-9][0-9][0-9][0-9]TS[0-9][A-Z0-9]'
OR field1 LIKE '[0-9][0-9][0-9][0-9]TS[0-9][0-9][A-Z0-9]'
OR field1 LIKE '[0-9][0-9][0-9][0-9]TS[0-9][0-9][0-9][A-Z0-9]'
OR field1 LIKE '[0-9][0-9][0-9][0-9]TS[0-9][0-9][0-9][0-9][A-Z0-9]'
ORDER BY field2

使用 Oracle 语法:

SELECT DISTINCT field1
FROM Table1
WHERE REGEXP_LIKE(field1, '^[0-9]{4}TS[0-9]{0,4}[A-Z0-9]$')
ORDER BY field2

使用 MySQL 语法:

SELECT DISTINCT field1
FROM Table1
WHERE field1 REGEXP '^[0-9]{4}TS[0-9]{0,4}[A-Z0-9]$'
ORDER BY field2
于 2013-09-24T22:00:10.920 回答