我正在使用这个版本的 Sybase -
Adaptive Server Enterprise/15.5/EBF 18164 SMP ESD#2/P/x86_64/Enterprise Linux。
当我尝试运行以下查询时,我收到一条错误消息Incorrect syntax near 'regexp'
。
SELECT * FROM T1 WHERE C1 regexp '.*'
如果此版本的 ASE 不支持此功能,有人可以提出替代方案吗?
试试这个方法:
SELECT * FROM T1 WHERE C1 like '%.%'
或者
SELECT * FROM T1 WHERE C1 like '%[.]%'
天真地,您可以构造要查找的字符的 varchar(nn),或者相反,知道有效字符集并搜索该集中的任何 NOT。
declare @mySet varchar(255)
select @mySet = '%[' + char(128) + char(129) + ... + ']%'
-- OR
select @mySet = '%[^A-Z0-9_-@.]%' -- for example, case insensitive
-- then
select * from T where C like @mySet