查询查找双字节字符记录

Query to Find double byte character record

我有一个 table,它在 FORMAT 列中包含双字节字符记录。我想找到哪条记录包含双字节字符?是否有查询查找双字节字符记录?

我使用下面的查询来查找记录,但是 returns format 列中的单字节和双字节字符记录。

select * from Product_Details
where language='JP' and convert(nvarchar(max),convert(varchar(max),FORMAT)) = FORMAT

-- 创建具有 NVARchar 列格式的 Product_Details

CREATE TABLE Product_Details
 (Language varchar(2), format NVarchar(max))
GO 

--用单字节填充Product_Details和 --格式列中的双字节

INSERT INTO Product_Details (Language, format) 
VALUES ('EN', 'Basavaraj')
 
INSERT INTO Product_Details (Language, format) 
VALUES ('JP', N'尊敬卿')
 
INSERT INTO Product_Details (Language, format) 
VALUES ('EN', 'Biradar')

Insert into product_details(Language,format)
   values('CN','你好')

现在我想列出格式列包含双字节字符数据的记录(例如日语,中文记录..)。table 包含很多中文和日语 records.so我想知道 哪个格式列包含此记录。

需要输出

Language         Format
 JP               尊敬卿
 CN               你好 

开始

如果您的 FORMAT 列是 nvarchar(max),那么那里的所有值都将是双字节的。

最简单的方法是将您的列与其转换后的非 Unicode 对应列进行比较。不匹配的就不是单字节了。

DEMO

select *
from Product_Details
where [format] != cast([format] as varchar(max))
select *
from Product_Details
where datalength([format]) > 1