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

MySQL CHAR()とT-SQL CHAR():違いは何ですか?

    MySQLとSQLServerの両方に含まれている多くの機能があります。ただし、両方のDBMSが同じ名前の関数を共有しているからといって、それらの関数がまったく同じように機能するわけではありません。

    CHAR()を取る 例えば。 MySQLとSQLServerの両方にこの関数が含まれています。技術的には、SQL Serverの場合、実際にはT-SQL関数ですが、それは重要ではありません。重要なのは、MySQLのCHAR() 関数は、T-SQL /SQLサーバーのCHAR()よりも多くの機能を提供します 機能。

    特に、MySQLバージョンは複数の整数を受け入れますが、T-SQLバージョンは単一の整数のみを受け入れます。 MySQLバージョンはUSINGも受け入れます 使用する文字セットを指定できる句(T-SQLバージョンにはこの句がありません)。

    以下は、これらの違いの例です。

    複数の整数

    MySQLを使用するときに複数の整数を指定すると、次のようになります。

    SELECT CHAR(67, 97, 116) AS 'MySQL Result';

    結果:

    +--------------+
    | MySQL Result |
    +--------------+
    | Cat          |
    +--------------+
    

    したがって、各整数を正常に解釈し、結果を返します。

    SQLServerを使用して同じことを行うとどうなりますか。

    SELECT CHAR(67, 97, 116) AS 'SQL Server Result';

    結果:

    The char function requires 1 argument(s).
    

    MySQLの例と同じ結果を得るには、複数のCHAR()を連結する必要があります。 関数。このようなもの:

    SELECT CHAR(67) + CHAR(97) + CHAR(116) AS 'Concatenated Result';

    結果:

    +-----------------------+
    | Concatenated Result   |
    |-----------------------|
    | Cat                   |
    +-----------------------+
    

    USING 条項

    MySQLバージョンのCHAR() USINGを受け入れます 一方、T-SQLバージョンはそうではありません。 MySQLを使用してUnicodeコードポイントを指定する例を次に示します。

    SELECT CHAR(0x027FE USING ucs2) AS 'MySQL Result';

    結果:

    +--------------+
    | MySQL Result |
    +--------------+
    | ⟾            |
    +--------------+
    

    SQLServerに切り替えると次のようになります。

    SELECT CHAR(0x027FE USING ucs2) AS 'SQL Server Result';

    結果:

    Incorrect syntax near 'USING'.
    

    例3–複数の結果バイト

    MySQLでは、255より大きい引数は自動的に複数の結果バイトに変換されます。 SQL Serverでは、255より大きい引数はNULLを返します 。

    MySQLを使用した例を次に示します。

    SELECT HEX(CHAR(1799)) AS 'MySQL Result';

    結果:

    +--------------+
    | MySQL Result |
    +--------------+
    | 0707         |
    +--------------+
    

    ここでは、SQLServerでも同じことを実行しようとしています。

    SELECT CONVERT(VARCHAR(1000), CHAR(1799), 2) AS 'SQL Server Result';

    結果:

    +---------------------+
    | SQL Server Result   |
    |---------------------|
    | NULL                |
    +---------------------+
    

    1. 集計関数を使用したSQLGROUPBYCASEステートメント

    2. SQLのデータ型のサイズを変更します

    3. Postgresql再帰的自己結合

    4. MariaDBでのEXP()のしくみ