上一頁|下一頁

定序序列選項

指定 PROC SORT 的定序序列。

有效期限: PROC SORT 陳述式
附註: PROC SORT 陳述式會依一或多個字元或數值變數來排序 SAS 資料集中的觀測值。

語法

PROC SORT collating-sequence-option <other option(s)> ;

選項

選項可以包含一個 collating-sequence-option 和多個 other option。兩種選項類型的順序不重要,而且兩種類型不一定要出現在相同的 PROC SORT 步驟中。以下只對 PROC SORT collating-sequence-option 進行說明。
作業環境資訊: 如需 DANISH、FINNISH、NORWEGIAN 或 SWEDISH collating-sequence-option 之作業環境特有顯示方式的詳細資訊,請參閱作業環境的 SAS 文件。

ASCII

使用 ASCII 定序序列來排序字元變數。只有當您想要在 EBCDIC 為原生定序序列的系統上達到 ASCII 順序時,才需要此選項。

DANISH NORWEGIAN

根據丹麥文和挪威文來排序字元

丹麥文和挪威文定序序列顯示在針對每種語言排序的英數字元 中。

EBCDIC

使用 EBCDIC 定序序列來排序字元變數。只有當您想要在 ASCII 為原生定序序列的系統上達到 EBCDIC 順序時,才需要此選項。

POLISH

根據波蘭文慣例來排序字元。

FINNISH SWEDISH

根據芬蘭文和瑞典文慣例來排序字元。芬蘭文和瑞典文定序序列顯示在針對每種語言排序的英數字元 中。

NATIONAL

使用替代定序序列 (如安裝所定義) 排序字元變數,以反映國家/地區的國家使用差異。若要使用此選項,站台必須已定義自訂的國家排序序列。 請與站台的 SAS 安裝代表確認,以決定是否有自訂的國家排序序列可用。

NORWEGIAN

請參閱 DANISH

SWEDISH

請參閱 FINNISH

SORTSEQ=collating-sequence

指定定序序列。collating-sequence 可以是 collating-sequence-option、轉譯表格、編碼或關鍵字 LINGUISTIC。只可以指定一個定序序列。 如需詳細資訊,請參閱 定序序列

以下是定序序列的描述:

collating—sequence—option | translation_table

指定轉譯表格 (可以是 SAS 所提供的轉譯表格或任何使用者定義的轉譯表格) 或其中一個 PROC SORT 陳述式 Collating-Sequence-Option。 如需搭配使用 PROC TRANTAB 和 PROC SORT 與 SORTSEQ= 的範例,請參閱 使用不同的轉譯表格進行排序

可用的轉譯表格如下:
  • ASCII
  • DANISH
  • EBCDIC
  • FINNISH
  • ITALIAN
  • NORWEGIAN
  • POLISH
  • REVERSE
  • SPANISH
  • SWEDISH
下圖顯示每種語言中的英數字元會如何排序:
針對每種語言排序的英數字元
英數字元的國家定序序列
限制 您只可以在 PROC SORT 步驟中指定一個 collating-sequence-option。
提示 指定的 SORTSEQ= 定序序列選項沒有括號而且沒有相關聯的引數。如何指定定序序列的範例如下:proc sort data=mydata SORTSEQ=ASCII;

encoding-value

指定編碼值。結果與以所指定編碼表示之字元資料的二進位定序相同。請參閱轉碼資料的 SBCS、DBCS 和 Unicode 編碼值中的支援編碼值。

限制 PROC SORT 是唯一程序或 SAS 系統的一部分,可辨識針對 SORTSEQ= 選項指定的編碼。
提示 編碼值包含非英數字元或底線的字元時,需要用引號括住值。
請參閱 可以在轉碼資料的 SBCS、DBCS 和 Unicode 編碼值中指定的編碼清單。

LINGUISTIC<(collating—rules )>

指定語言定序 (根據所指定語言的規則來排序字元)。規則和預設定序序列選項是根據目前地區設定中所指定的語言。實作是由 International Components for Unicode (ICU) 資料館所提供,並產生與 Unicode Collation Algorithm (UCA) 最為相容的結果。

別名 UCA
限制 SORTSEQ=LINGUISTIC 選項僅適用於 PROC SORT SORTSEQ= 選項,而不適用於 SAS 系統 SORTSEQ= 選項。
提示 z/OS 大型主機上,LINGUISTIC 排序需要較多的記憶體。您可能需要將 REGION 設為 50M 或以上。如果您是以批次模式執行,則必須在 JCL 中執行此動作,或者,如果您是以互動方式執行,則必須在 VERIFY 畫面上執行此動作。此動作允許適當地載入 ICU 資料館,而且不影響用於排序的記憶體。
collating-rules 必須用括號括住。可以指定多個定序規則。
針對使用語言定序進行排序的資料集執行 BY 處理時,可能需要指定 NOBYSORTED 系統選項,才能適當地處理資料集。BY 處理的執行方式與定序序列處理不同。
請參閱 SAS Companion for z/OS 中附錄 7 的 “ICU License”
定序序列,以取得語言定序的詳細資訊。
Unicode Collation Algorithm (UCA) 規格的網站 (http://www.unicode.org)。
下列是可以針對 LINGUISTIC 選項指定的 collation-rules。這些規則會修改語言定序序列:

ALTERNATE_HANDLING=SHIFTED

控制變數字元 (如空格、標點符號和符號) 的處理。未指定此選項 (使用預設值 Non-Ignorable) 時,這些變數字元的差異與字母差異的重要性相同。如果指定 ALTERNATE_HANDLING 選項,則這些變數字元的重要性較低。

預設 NON_IGNORABLE
提示 SHIFTED 值通常與設為 Quaternary 的 STRENGTH= 搭配使用。在這種情況下,會在比較字串時考量空格字元、標點符號和符號,但前提是字串的所有其他部分都相同 (基本字母、重音符號和大小寫)。

CASE_FIRST=

指定大寫和小寫字母的順序。此引數只適用於 TERTIARY、QUATERNARY 或 IDENTICAL 層級。下表提供 CASE_FIRST 引數的值和資訊:

描述
UPPER
先排序大寫字母,再排序小寫字母。
LOWER
先排序小寫字母,再排序大寫字母。

COLLATION=

下表列出可用的 COLLATION= 值:如果您未選取定序值,則會選取使用者的地區設定預設定序。

描述
BIG5HAN
針對拉丁指定 Pinyin 順序,以及針對中文、日文和韓文字元指定 big5 字元集順序。
DIRECT
指定印度文變異。
GB2312HAN
針對拉丁指定 Pinyin 順序,以及針對中文、日文和韓文字元指定 gb2312han 字元集順序。
PHONEBOOK
指定字元順序的電話簿樣式。只有針對德文才選取 PHONEBOOK。
PINYIN
根據譯為 Pinyin 的逐字元音譯,指定中文、日文和韓文字元順序。此順序一般是與簡體中文搭配使用。
POSIX
是可攜式作業系統介面。此選項會指定 "C" 地區設定的字元排序。
STROKE
指定字元的非字母書寫樣式順序。針對中文、日文、韓文或越南文語言選取 STROKE。此順序一般是與繁體中文搭配使用。
TRADITIONAL
指定字元順序的傳統樣式。例如,針對西班牙文語言選取 TRADITIONAL。

LOCALE=locale_name

以 POSIX 名稱形式指定地區設定名稱。例如,ja_JP。請參閱 LOCALE= 值以及 ENCODING、PAPERSIZE、DFLANG 和 DATESTYLE 選項的預設設定,以取得 PROC SORT 所支援地區設定和 POSIX 值的清單。

限制 PROC SORT 不支援下列地區設定:
  • Afrikaans_SouthAfrica, af_ZA
  • Cornish_UnitedKingdom, kw_GB
  • ManxGaelic_UnitedKingdom, gv_GB

NUMERIC_COLLATION=

依數值排序文字內的整數值,而非依用來表示數字的字元。

描述
ON
依數值排序數字。例如,"8 Main St." 會排序在 "45 Main St." 前面。
OFF
依字元值排序數字。例如,"45 Main St." 會排序在 "8 Main St." 前面。
預設 OFF

STRENGTH=

strength 的值與定序層級相關。有五個定序層級值。下表提供五個層級的相關資訊。 strength 的預設值與地區設定相關。

定序類型
描述
PRIMARY 或 1
PRIMARY 會指定基本字元之間的差異 (例如 "a" < "b")。
它是最大的差異。例如,字典是依基本字元分成不同部分。
SECONDARY 或 2
字元中的重音符號會被視為次要差異 (例如 "as" < "às" < "at")。
字串中具有主要差異時,會忽略次要差異。 字母的其他差異也可以視為次要差異 (視語言而定)。
TERTIARY 或 3
第三個層級會區分字元中的大小寫差異 (例如 "ao" < "Ao" < "aò")。
字串中具有主要或次要差異時,會忽略第三差異。另一個範例是大型與小型假名之間的差異。
QUATERNARY 或 4
在層級 1-3 上忽略標點符號時,可再使用一個層級來區分附有與不附標點符號的文字 (例如 "ab" < "a-b" < "aB")。
如果需要忽略標點符號或處理日文文字時,則應該使用第四層級。字串中具有主要、次要或第三差異時,會忽略此差異。
IDENTICAL 或 5
所有其他層級都相等時,會使用相同層級進行取捨。只有在層級 1-4 沒有差異的情況下,才會在此層級比較每個字串之常態化形式 D (NFD) 形式的 Unicode 字碼指標值。
因為兩個字串之間的字碼指標值差異十分罕見,所以此層級應該謹慎地使用。例如,只有在此層級區分希伯來文聲調變化標記。
別名 Level=
注意:
如果您使用主機排序公用程序來排序資料,則使用 SORTSEQ= 選項指定轉譯表格型定序序列可能會損毀字元 BY 變數。如需詳細資訊,請參閱作業環境的 PROC SORT 文件。

詳細資料

PROC SORT 陳述式中的定序序列選項會依一或多個字元或數值變數來排序 SAS 資料集中的觀測值。
選項
工作
選項
指定定序序列
指定 ASCII
指定 EBCDIC
指定丹麥文
指定芬蘭文
指定挪威文
指定波蘭文
指定瑞典文
指定自訂的序列
指定上面所列的任何定序序列 (ASCII、EBCDIC、DANISH、FINNISH、ITALIAN、NORWEGIAN、POLISH、SPANISH、SWEDISH 或 NATIONAL)、任何其他系統所提供轉譯表格的名稱 (POLISH、SPANISH),以及使用者所建立轉譯表格的名稱。您可以指定編碼。您也可以指定關鍵字 LINGUISTIC 或 UCA,以達到地區設定適當的定序序列。

請同時參閱

Base SAS Procedures Guide 中第 55 章的 “SORT 程序”
上一頁|下一頁|頁面頂端