31

ファイルを varbinary(MAX) として格納する db テーブルがあります。次のスクリプトを実行すると:

SELECT SUM(LEN(Content)) FROM dbo.File

結果は次のとおりです。

35398663

この数値をメガバイトに変換したいですか? これは可能ですか?

4

1 に答える 1

74

次のように、バイト数を取得してから変換するために使用DATALENGTHします。

SQL フィドル

MS SQL Server 2017 スキーマのセットアップ:

CREATE TABLE supportContacts 
    (
     id int identity primary key, 
     type varchar(20), 
     details varchar(30)
    );

INSERT INTO supportContacts
(type, details)
VALUES
('Email', 'admin@sqlfiddle.com'),
('Twitter', '@sqlfiddle');

クエリ 1 :

select *, gigabytes / 1024.0 as terabytes
from (
  select *, megabytes / 1024.0 as gigabytes
  from (
    select *, kilobytes / 1024.0 as megabytes
    from (
      select *, bytes / 1024.0 as kilobytes
      from (
        select sum(datalength(details)) as bytes
        from supportContacts       
      ) a
    ) b  
  ) c
) d

結果

| bytes | kilobytes |     megabytes |      gigabytes |         terabytes |
|-------|-----------|---------------|----------------|-------------------|
|    29 |   0.02832 | 0.00002765625 | 2.700805664e-8 | 2.63750553125e-11 |
于 2012-09-14T16:44:41.310 に答える