# `Fn_fristPinyin` (function) > 根据首字母拼音查询 - **Type:** FUNCTION - **Returns:** `varchar(255)` - **Deterministic:** NO - **SQL data access:** CONTAINS SQL ## Parameters | # | Mode | Name | Type | |---|---|---|---| | 1 | IN | `P_NAME` | `varchar(255)` | ## Body _Body is not pre-cached. To inspect: `mysql --defaults-file=~/.my.cnf -e 'SHOW CREATE FUNCTION `Fn_fristPinyin`'`._ ## Narrative **Business context:** Returns the first pinyin letter of a single Chinese character. Building block of `Fn_find_pinyin`, which assembles full pinyin abbreviations used as code prefixes by the `Sp_Sis_GetMaxNo` family. **What it does:** if the input is single-byte ASCII it returns it unchanged. Otherwise converts the first byte of the GBK-encoded character to its hex value and bucket-matches it against the standard GBK pinyin-range boundary table to pick a letter A–Z. No `I`, `U`, `V` (Mandarin has no surname/initial in those ranges by convention). No table I/O. **Invocation:** called only by `Fn_find_pinyin` and indirectly by the `Sp_Sis_GetMaxNo*` next-code generators that wrap it. A `_copy1` backup of `Fn_find_pinyin` also references it.