最近好像沒SQL可以玩了..
出個題目~
假設資料如下:
declare @tab table(
資料 nvarchar(50)
)
insert into @tab
values('test')
,('我們')
,('0101010101')
,('0123456789')
,('^^^^')
,('Run IT')
,('94987!')
我想找出非英文及非數字的資料
如下
各位會如何下SQL查詢??
我之後再貼答案@@...
參考:用正則表示式就可以抓到資料囉,可以用LIKE或PATINDEX來抓異常資料。
select *
from @tab
where 資料 like '%[^a-z0-9]%'
https://docs.microsoft.com/zh-tw/sql/t-sql/language-elements/like-transact-sql?view=sql-server-2017
select *
,PatIndex('%[^a-z0-9]%',資料) as 異常位置
from @tab
where PatIndex('%[^a-z0-9]%',資料) > 0
https://docs.microsoft.com/zh-tw/sql/t-sql/functions/patindex-transact-sql?view=sql-server-2017
第一想法,經典正則[^a-zA-Z0-9]
declare @tab table(
資料 nvarchar(50)
)
insert into @tab
values('test')
,(N'我們')
,('0101010101')
,('0123456789')
,('^^^^')
,('Run IT')
,('94987!')
select * from @tab
where 資料 LIKE '%[^a-zA-Z0-9]%'
結果:
資料
--------------------------------------------------
我們
^^^^
Run IT
94987!