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

COL_LENGTH()を使用して、SQLServerで列の長さを取得します

    SQL Serverでは、COL_LENGTH()を使用できます 列の長さを取得する関数。より具体的には、この関数は、定義された列の長さをバイト単位で返します。

    この関数は、テーブル名と列名の2つの引数を受け入れます。

    例1-基本的な使用法

    実例を示します。

    USE Music;
    SELECT COL_LENGTH('dbo.Artists', 'ArtistName') AS Result;
    

    結果:

    +----------+
    | Result   |
    |----------|
    | 510      |
    +----------+
    

    例2–データベースが間違っていますか?

    NULLの結果が得られた場合は、正しいデータベースを照会していることを確認してください。

    前の例では、Musicというデータベースを使用しています そのデータベースには、それらの名前のテーブルと列があります。データベースに指定されたテーブル/列の組み合わせがない場合、結果はNULLになります 。

    間違ったデータベースをクエリするとどうなりますか:

    USE WideWorldImportersDW;
    SELECT COL_LENGTH('dbo.Artists', 'ArtistName') AS Result;
    

    結果:

    +----------+
    | Result   |
    |----------|
    | NULL     |
    +----------+
    

    例3–さらにいくつかの列

    同じテーブルからより多くの列を返す例を次に示します。

    USE Music;
    DECLARE @table_name nvarchar(50) = 'dbo.Artists';
    SELECT 
      COL_LENGTH(@table_name, 'ArtistId') AS ArtistId,
      COL_LENGTH(@table_name, 'ArtistName') AS ArtistName,
      COL_LENGTH(@table_name, 'ActiveFrom') AS ActiveFrom,
      COL_LENGTH(@table_name, 'CountryId') AS CountryId;
    

    結果:

    +------------+--------------+--------------+-------------+
    | ArtistId   | ArtistName   | ActiveFrom   | CountryId   |
    |------------+--------------+--------------+-------------|
    | 4          | 510          | 3            | 4           |
    +------------+--------------+--------------+-------------+
    

    例4–sys.columnsのクエリ

    この例では、結果をmax_lengthと比較します。 sys.columnsの列 システムビュー。

    SELECT 
      OBJECT_NAME(object_id) AS [Table Name],
      name AS [Column Name],
      max_length,
      COL_LENGTH(OBJECT_NAME(object_id), name) AS [COL_LENGTH()]
    FROM sys.columns
    WHERE name IN ('ArtistId', 'ArtistName', 'ActiveFrom', 'CountryId');
    

    結果:

    +-------------------+---------------+--------------+----------------+
    | Table Name        | Column Name   | max_length   | COL_LENGTH()   |
    |-------------------+---------------+--------------+----------------|
    | ufn_AlbumsByGenre | ArtistName    | 510          | 510            |
    | Artists           | ArtistId      | 4            | 4              |
    | Artists           | ArtistName    | 510          | 510            |
    | Artists           | ActiveFrom    | 3            | 3              |
    | Artists           | CountryId     | 4            | 4              |
    | Albums            | ArtistId      | 4            | 4              |
    | Country           | CountryId     | 4            | 4              |
    | RockAlbums        | ArtistName    | 510          | 510            |
    | JazzAlbums        | ArtistName    | 510          | 510            |
    | BluesAlbums       | ArtistName    | 510          | 510            |
    +-------------------+---------------+--------------+----------------+
    

    ここで返される列とそれぞれの長さは、複数のテーブルからのものです。 ArtistIdの場合 、Artistsにはこの名前の主キーがあります テーブルとAlbums内の同じ名前の外部キー テーブル。このクエリは、3つのビューからの列と、テーブル値関数も返します。


    1. YEAR()の例– MySQL

    2. Oracle10gタイムゾーンの混乱

    3. psql:サーバーが予期せず接続を閉じました

    4. インポートエクスポートmysqlデータベースコマンドライン超高速