SQL Server中的正则表达式检查空格

时间:2015-05-14 07:21:30

标签: sql-server regex

我正在使用以下代码检查SQL Server中的无效名称(带有特殊字符的名称)

select First_Name 
from sc.Name 
where First_Name LIKE '%[^a-zA-Z]%';

如何添加对前导和尾随空格的检查?

3 个答案:

答案 0 :(得分:1)

SQL Server中没有本机 Regex ,但有pattern matching。选择以空格结尾或以空格开头的列的简单方法是:

SELECT myColumn 
FROM myTable 
WHERE (myColumn LIKE '% ') 
   OR (myColumn LIKE ' %') 
   OR (myColumn LIKE '%[^a-z]%')

非常“沉重”的搜索,但对于一次性查询,它会起作用。

当然,如果您正在寻找前导和尾随空格,并且要求确实是两者都有,那么您可以使用:

(myColumn LIKE ' %[^a-z]% ')

或以上任意组合以满足您的需求。

答案 1 :(得分:1)

您可以使用@support_report.notes = params[:support_report][:notes] if @support_report.save redirect_to admins_support_reports_path, notice: t('admins.support_reports.add_notes.successfully') else redirect_to admins_support_reports_path, alert: t('admins.support_reports.add_notes.no_change') end 检查前导和尾随空格,如下所示:

First_Name <> LTRIM(RTRIM(First_Name))

答案 2 :(得分:0)

试试这个:

create table a(b varchar(50))
insert into a VALUES('   sadf'),('asdg   ')

select b from a where b LIKE '[^a-zA-Z]%' or  b LIKE '%[^a-zA-Z]';