ASCII UNICODE字符我有以下表格:檢測未在表
Select
name,
address,
description
from dbo.users
我想搜索所有該表是UNICODE而不是ASCII的任何字符。這可能嗎?
ASCII UNICODE字符我有以下表格:檢測未在表
Select
name,
address,
description
from dbo.users
我想搜索所有該表是UNICODE而不是ASCII的任何字符。這可能嗎?
你可以很簡單地找到非ASCII字符:
SELECT NAME, ADDRESS, DESCRIPTION
FROM DBO.USERS
WHERE NAME != CAST(NAME AS VARCHAR(4000))
OR ADDRESS != CAST(ADDRESS AS VARCHAR(4000))
OR DESCRIPTION != CAST(DESCRIPTION AS VARCHAR(4000))
據我所知,似乎沒有內置功能。蠻力方法是將每個字符傳遞給ascii
,然後將結果傳遞給char
並檢查它是否返回'?',這意味着該字符超出範圍。你可以寫與下面的代碼作爲參考UDF,但我認爲這是一個非常低效的解決方案:
declare @i int = 1
declare @x nvarchar(10) = N'vsdǣf'
declare @result nvarchar(100) = N''
while (@i < len(@x))
begin
if char(ascii(substring(@x,@i,1))) = '?'
begin
set @result = @result + substring(@x,@i,1)
end
set @i = @i+1
end
select @result
您是否正在尋找返回字符本身還是隻識別具有這些字符的記錄? @johnnybell已經回答了後者的情況。 –
@ shree.pat18只是記錄會做...某種指針,所以我可以找到「罪惡派對」 – whytheq