【发布时间】:2015-03-17 04:10:59
【问题描述】:
我有一个选择语句如下:
SELECT Veri from tblTest
where CAST(Veri COLLATE SQL_Latin1_General_CP1_CI_AS as varchar(10))=
CAST('БHО' COLLATE SQL_Latin1_General_CP1_CI_AS as varchar(10))
列Veri 具有SQL_Latin1_General_CP1_CI_AS 类型的排序规则。
有一行Veri 等于БHО。但是,select 语句不返回任何内容。
表 tblTest 的排序规则也是SQL_Latin1_General_CP1_CI_AS。
我做错了什么?
编辑:Veri 列的列定义如下:
CONDENSED_TYPE: nvarchar(50) TABLE_SCHEMA:dbo TABLE_NAME:tblTest COLUMN_NAME:验证 ORDINAL_POSITION: 2 COLUMN_DEFAULT:空 IS_NULLABLE:否 DATA_TYPE:nvarchar CHARACTER_MAXIMUM_LENGTH:50 CHARACTER_OCTET_LENGTH:100 NUMERIC_PRECISION:NULL NUMERIC_PRECISION_RADIX:空 NUMERIC_SCALE:空 DATETIME_PRECISION:空 CHARACTER_SET_CATALOG:空 CHARACTER_SET_SCHEMA:空 COLLATION_NAME:SQL_Latin1_General_CP1_CI_AS CHARACTER_SET_NAME:UNICODE COLLATION_CATALOG:空 DOMAIN_SCHEMA:空 DOMAIN_NAME:空
【问题讨论】:
-
Latin1 不只包括英文字母 + 重音(德语、法语、瑞典语等)字母吗?
-
@user1365888,这个选择返回什么?选择 CAST(Veri COLLATE SQL_Latin1_General_CP1_CI_AS as varchar(10)) 作为 VeriCol,CAST('БHО' COLLATE SQL_Latin1_General_CP1_CI_AS as varchar(10)) 作为 SomeVal FROM tblTest
-
有没有用问号代替的字符? (据我所知,这些字符(例如Б)实际上不是拉丁语)。
-
@EduardUta 此选择不返回任何行。
标签: sql-server collation string-comparison