我有一个表,该表在FORMAT
列中包含双字节字符记录。我想查找哪个记录包含双字节字符?是否有任何查询来查找双字节字符记录?
我使用以下查询来查找记录,但是它在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','你好')
现在我要列出格式列包含双字节字符数据的记录(例如日语,中文记录..)。该表包含很多中文和日语记录。所以我试图找出 哪个格式的列包含此记录。
必需的输出
Language Format
JP 尊敬卿
CN 你好
GO
答案 0 :(得分:1)
最简单的方法是将您的列与转换后的非Unicode对应列进行比较。那些不匹配的将不是单字节。
select *
from Product_Details
where [format] != cast([format] as varchar(max))
答案 1 :(得分:0)
如果您的FORMAT列为 n varchar(max),则其中的所有值都将加倍。
答案 2 :(得分:0)
select *
from Product_Details
where datalength([format]) > 1