查询查找双字节字符记录
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 对应列进行比较。不匹配的就不是单字节了。
select *
from Product_Details
where [format] != cast([format] as varchar(max))
select *
from Product_Details
where datalength([format]) > 1
我有一个 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 对应列进行比较。不匹配的就不是单字节了。
select *
from Product_Details
where [format] != cast([format] as varchar(max))
select *
from Product_Details
where datalength([format]) > 1