sql >> データベース >  >> RDS >> Oracle

OracleのASCII()関数

    Oracle Databaseでは、ASCII() 関数は、引数の最初の文字のデータベース文字セットの10進表現を返します。

    構文

    構文は次のようになります:

    ASCII(char)

    char データ型はCHARVARCHAR2NCHAR 、またはNVARCHAR2

    ASCII() この文字列の最初の文字のみの数値ASCII値を返します。

    簡単な例を次に示します。

    SELECT ASCII('Oracle')
    FROM DUAL;

    結果:

    79

    これは、大文字のOであることを示しています。 79のASCII数値を持っています 。

    前述のように、ASCII() 最初ののASCII値のみを返します キャラクター。したがって、以下でも同じ結果が得られます。

    SELECT ASCII('O')
    FROM DUAL;

    結果:

    79

    これをさらに実証するために、上記の文字列の各文字から数値ASCII値を取得しましょう:

    SELECT 
        ASCII('O') AS "O",
        ASCII('r') AS "r",
        ASCII('a') AS "a",
        ASCII('c') AS "c",
        ASCII('l') AS "l",
        ASCII('e') AS "e"
    FROM DUAL;

    結果:

        O      r     a     c      l      e 
    _____ ______ _____ _____ ______ ______ 
       79    114    97    99    108    101 

    大文字と小文字の区別

    大文字のASCII値は、同等の小文字とは異なります。

    例:

    SELECT 
        ASCII('R') AS "R",
        ASCII('r') AS "r"
    FROM DUAL;

    結果:

        R      r 
    _____ ______ 
       82    114

    データベースの例

    ASCII()の使用例を次に示します。 データベースクエリの場合:

    SELECT 
      first_name, 
      ASCII(first_name) AS "ASCII value of leftmost character"
    FROM employees
    FETCH FIRST 10 ROWS ONLY;

    結果:

       FIRST_NAME    ASCII value of leftmost character 
    _____________ ____________________________________ 
    Ellen                                           69 
    Sundar                                          83 
    Mozhe                                           77 
    David                                           68 
    Hermann                                         72 
    Shelli                                          83 
    Amit                                            65 
    Elizabeth                                       69 
    Sarah                                           83 
    David                                           68 

    右端の文字

    ここでは、SUBSTR()を使用します 各ペット名から右端の文字を返し、それをASCII()で再度使用する関数 その文字のASCII値を返す関数。

    SELECT 
      first_name, 
      SUBSTR(first_name, -1) AS "Rightmost character",
      ASCII(SUBSTR(first_name, -1)) AS "ASCII"
    FROM employees
    FETCH FIRST 10 ROWS ONLY;

    結果:

       FIRST_NAME    Rightmost character    ASCII 
    _____________ ______________________ ________ 
    Ellen         n                           110 
    Sundar        r                           114 
    Mozhe         e                           101 
    David         d                           100 
    Hermann       n                           110 
    Shelli        i                           105 
    Amit          t                           116 
    Elizabeth     h                           104 
    Sarah         h                           104 
    David         d                           100

    空の文字列

    空の文字列を指定すると、nullになります 返送されます。

    SET NULL 'null';
    SELECT ASCII('')
    FROM DUAL;

    結果:

       ASCII('') 
    ____________ 
            null

    デフォルトでは、SQLclおよびSQL * Plusは、nullの場合は常に空白を返します。 SQL SELECTの結果として発生します 声明。

    ただし、SET NULLは使用できます 返される別の文字列を指定します。ここでは、文字列nullを指定しました 返却する必要があります。

    ヌル値

    nullを渡す 結果はnull

    SELECT ASCII(null)
    FROM DUAL;

    結果:

       ASCII(NULL) 
    ______________ 
              null

    引数がありません

    引数を渡さずに関数を呼び出すと、エラーが発生します:

    SELECT ASCII()
    FROM DUAL;

    結果:

    Error starting at line : 1 in command -
    SELECT ASCII()
    FROM DUAL
    Error at Command Line : 1 Column : 8
    Error report -
    SQL Error: ORA-00909: invalid number of arguments
    00909. 00000 -  "invalid number of arguments"
    *Cause:    
    *Action:

    渡される引数が多すぎる場合も同じです:

    SELECT ASCII('a', 'b')
    FROM DUAL;

    結果:

    Error starting at line : 1 in command -
    SELECT ASCII('a', 'b')
    FROM DUAL
    Error at Command Line : 1 Column : 8
    Error report -
    SQL Error: ORA-00909: invalid number of arguments
    00909. 00000 -  "invalid number of arguments"
    *Cause:    
    *Action:

    1. MySQLで大文字と小文字を区別するように

    2. MS SQL Serverで「INSERTINTO」スクリプトを生成するための無料のツールはありますか?

    3. 動的SQLステートメントを使用したカーソルForループ

    4. 文字列をチェックするPostgresクエリは数値です