我在SQL Server中使用下面的代碼正則表達式在SQL Server檢查空格
select First_Name
from sc.Name
where First_Name LIKE '%[^a-zA-Z]%';
如何添加前導和尾部空格支票檢查無效名稱(姓名有特殊字符)?
我在SQL Server中使用下面的代碼正則表達式在SQL Server檢查空格
select First_Name
from sc.Name
where First_Name LIKE '%[^a-zA-Z]%';
如何添加前導和尾部空格支票檢查無效名稱(姓名有特殊字符)?
沒有本地正則表達式在SQL Server中,但是有pattern matching。一個簡單的方法來選擇最終列或以空格開始將是:
SELECT myColumn
FROM myTable
WHERE (myColumn LIKE '% ')
OR (myColumn LIKE ' %')
OR (myColumn LIKE '%[^a-z]%')
一個比較「重」的搜索,但對於一次性查詢它會工作。
當然,如果你正在尋找開頭和結尾的空格,而且要求是真的,它有兩個,那麼你可以使用:
(myColumn LIKE ' %[^a-z]% ')
或者以上的任意組合,以滿足您的需求。
不正確,但使用'OR'使其變慢;)。 –
@ shA.t是的,但是如果他想要所有的連擊,就需要OR。它不會像'''雖然,但它更簡單:) – Mackan
試試這個:
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]';
像「'asd#$ a''這樣的值在您的答案中被認爲是有效的,按照OP – ughai
可以使用First_Name <> LTRIM(RTRIM(First_Name))
檢查開頭和結尾的空格,如:
SELECT First_Name
FROM sc.Name
WHERE First_Name LIKE '%[^a-zA-Z]%'
AND First_Name <> LTRIM(RTRIM(First_Name))
不錯(呃)一:)除了AND應該可能是一個或所有'虛假'名稱組合 – Mackan
是這樣的,但應該是什麼樣的替代正則表達式來多元化的格局? – Leo
你的謂詞應該適用於尾隨空間和領先空間 –
那麼,沒有法文,德文,瑞典文,挪威文,西班牙文名稱或英文名字帶短劃線? –