Skip to main content
 首页 » 编程设计

c#之将正则表达式转换为 SQL

2024年02月01日24over140

我有一个正则表达式:

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

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

  SELECT DISTINCT field1 FROM WHERE LIKE Mask ORDER BY field2 

请您参考如下方法:

使用 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