排序规则函数 - TERTIARY_WEIGHTS (Transact-SQL)

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例Azure Synapse AnalyticsAnalytics Platform System (PDW)

对于非 Unicode 字符串表达式中的每个字符(使用 SQL 第三排序规则定义),此函数返回一个表示权重的二进制字符串。

Transact-SQL 语法约定

语法

TERTIARY_WEIGHTS( non_Unicode_character_string_expression )  

注意

若要查看 SQL Server 2014 (12.x) 及更早版本的 Transact-SQL 语法,请参阅早期版本文档

自变量

non_Unicode_character_string_expression
根据 SQL 第三排序规则定义的 char、varchar 或 varchar(max) 类型的字符串表达式。 有关上述排序规则的列表,请参阅注释。

返回类型

non_Unicode_character_string_expression 是 char 或 varchar 时,TERTIARY_WEIGHTS 返回 varbinary;non_Unicode_character_string_expression 具有 varchar(max) 数据类型时,返回 varbinary(max)

备注

SQL 第三排序规则未定义 non_Unicode_character_string_expression 时,TERTIARY_WEIGHTS 返回 NULL。 下表显示了 SQL 第三排序规则:

排序次序 ID SQL 排序规则
33 SQL_Latin1_General_Pref_CP437_CI_AS
34 SQL_Latin1_General_CP437_CI_AI
43 SQL_Latin1_General_Pref_CP850_CI_AS
44 SQL_Latin1_General_CP850_CI_AI
49 SQL_1xCompat_CP850_CI_AS
53 SQL_Latin1_General_Pref_CP1_CI_AS
54 SQL_Latin1_General_CP1_CI_AI
56 SQL_AltDiction_Pref_CP850_CI_AS
57 SQL_AltDiction_CP850_CI_AI
58 SQL_Scandinavian_Pref_CP850_CI_AS
82 SQL_Latin1_General_CP1250_CI_AS
84 SQL_Czech_CP1250_CI_AS
86 SQL_Hungarian_CP1250_CI_AS
88 SQL_Polish_CP1250_CI_AS
90 SQL_Romanian_CP1250_CI_AS
92 SQL_Croatian_CP1250_CI_AS
94 SQL_Slovak_CP1250_CI_AS
96 SQL_Slovenian_CP1250_CI_AS
106 SQL_Latin1_General_CP1251_CI_AS
108 SQL_Ukrainian_CP1251_CI_AS
113 SQL_Latin1_General_CP1253_CS_AS
114 SQL_Latin1_General_CP1253_CI_AS
130 SQL_Latin1_General_CP1254_CI_AS
146 SQL_Latin1_General_CP1256_CI_AS
154 SQL_Latin1_General_CP1257_CI_AS
156 SQL_Estonian_CP1257_CI_AS
158 SQL_Latvian_CP1257_CI_AS
160 SQL_Lithuanian_CP1257_CI_AS
183 SQL_Danish_Pref_CP1_CI_AS
184 SQL_SwedishPhone_Pref_CP1_CI_AS
185 SQL_SwedishStd_Pref_CP1_CI_AS
186 SQL_Icelandic_Pref_CP1_CI_AS

使用 TERTIARY_WEIGHTS 来定义根据 char、varchar 或 varchar(max) 列的值定义的计算列。 当查询的 ORDER BY 子句指定 char、varchar 或 varchar(max) 列时,计算列和 char、varchar 或 varchar(max) 列上的索引定义可以提升性能

示例

本示例在将 TERTIARY_WEIGHTS 函数应用于 char 列的值的表中创建计算列:

CREATE TABLE TertColTable  
(Col1 char(15) COLLATE SQL_Latin1_General_Pref_CP437_CI_AS,  
Col2 AS TERTIARY_WEIGHTS(Col1));  
GO   

另请参阅

ORDER BY 子句 (Transact-SQL)