SQL ASCII 函数

SQL ASCII 函数用于返回字符表达式最左边字符的 ASCII 码。ASCII 函数的语法是:

SELECT ASCII (Character_Expression)
FROM [Source]

Character_Expression:指定要查找 ASCII 码的有效表达式。此函数将返回此表达式最左边字符的 ASCII 码。Character_Expression 可以是 Char 或 Varchar。此字符串函数的返回值将是 INT。

SQL ASCII 函数示例

该函数返回给定表达式最左边字符的 ASCII 码。以下查询将展示使用此方法的多种方式。

提示:请参考 表格 查看每个字符的代码。

DECLARE @i VARCHAR(25)
DECLARE @j INT

-- Initialize the variables.  
SET @i = 'a'
SET @j = 1

SELECT ASCII(@i) AS Result1,
	ASCII(@j) AS Result2 ;

SELECT ASCII('efgh') AS Result3;  

SELECT ASCII('789') AS Result4;
ASCII Function Example 1

我们正在查找字母 'a' 和整数 1 的 ASCII 码。我们还使用 SQL Server 中的 ALIAS 列为结果分别命名为 'Result1' 和 'Result2'。

SELECT ASCII(@i) AS Result1,
       ASCII(@j) AS Result2 ;

在以下行中,我们将 SQL ASCII 函数直接应用于一组字符(单词)。在这里,它将返回最左边的字符(即 'e'),其 ASCII 码应为 101。

SELECT ASCII('efgh') AS Result3;

接下来,我们将其直接应用于整数。在这里,字符串函数将返回最左边的字符(即 '7'),其 ASCII 码应为 55。

SELECT ASCII('789') AS Result4;

如何在 WHILE 循环中使用 ASCII 函数?

在此示例中,我们将在 WHILE LOOP 中使用 ASCII 函数。我建议您同时参考 SUBSTRING 和 WHILE LOOP 文章。

DECLARE @i int, 
        @str char(16);  

-- Initialize the variables.  
SET @i = 1;  
SET @str = 'Tutorial Gateway'; 
 
WHILE @i <= DATALENGTH(@str)
	BEGIN
		SELECT SUBSTRING(@str, @i, 1) AS [Char_Value],
			ASCII(SUBSTRING(@str, @i, 1)) AS [ASCII_Result]
		SET @i = @i + 1
	END;
Unicode Example 2

如何获取表列的 ASCII 值?

在此示例中,我们将把 SQL Server ASCII 函数应用于列。为此,我们使用下面显示的数据。

Source Table 4

以下语句将返回 [FirstName] 列和 [LastName] 列中最左边字符的 ASCII 码,以及 [YearlyIncome] 列中最左边数字的 ASCII 码。

SELECT [FirstName] 
      ,ASCII([FirstName]) AS [FN_ASCII] 
      ,[LastName]
      ,ASCII([LastName]) AS [LN_ASCII] 
      ,[Education]
      ,[Occupation]
      ,[YearlyIncome]
      ,ASCII([YearlyIncome]) AS [YI_ASCII]
      ,[Sales]
  FROM [Employee]

正如您从图中可以看到的,74 是 J 的代码,89 是 Y 的代码,57 是 9 的代码。

ASCII Function 3