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

SQL ServerでのISNUMERIC()のしくみ

    SQL Serverでは、ISNUMERIC()を使用できます。 式が数値であるかどうかを調べる関数。

    この関数は、式が数値の場合は1を返し、数値でない場合は0を返します。

    この関数を使用するには、関数を呼び出しているときに値/式を関数に渡すだけです。

    例1-数式

    この関数に数式を渡すとどうなるかを示す例を次に示します。

    SELECT ISNUMERIC(250) AS Result;
    

    結果:

    +----------+
    | Result   |
    |----------|
    | 1        |
    +----------+
    

    この場合、値は数値であり、結果は1です。

    値が文字列(一重引用符で囲まれている)として提供されている場合でも、同じ結果が得られます。

    SELECT ISNUMERIC('250') AS Result;
    

    結果:

    +----------+
    | Result   |
    |----------|
    | 1        |
    +----------+
    

    例2–非数式

    値がない場合は次のようになります 数値。

    SELECT ISNUMERIC('Hey!') AS Result;
    

    結果:

    +----------+
    | Result   |
    |----------|
    | 0        |
    +----------+
    

    例3–データベースの例

    ISNUMERIC()の使用例を次に示します。 WHERE データベースを照会するときの句:

    USE WideWorldImportersDW;
    SELECT COUNT(*) AS [Count]
    FROM Dimension.Customer
    WHERE ISNUMERIC([Postal Code]) = 1;
    

    結果:

    +---------+
    | Count   |
    |---------|
    | 402     |
    +---------+
    

    これにより、郵便番号が数値のすべての行の数が返されます。

    予期しない結果?非数値が数値の場合

    一部の文字は、数字でなくても数値として扱われます。これは、この関数を使用するときに注意する必要があることです。そうしないと、予期しない結果が生じる可能性があります。

    ISNUMERIC()を使用すると正を返す非数字を参照してください。 説明と例については。


    1. MySQLでデータベースまたはテーブルのインデックスを表示するにはどうすればよいですか?

    2. master..spt_valuesを使用して列を分割する理由(および方法)

    3. PDOステートメントが機能しない

    4. データベースサイズが2ギガバイトを超えると、SQLiteのパフォーマンスが低下しますか?