1

しばらくグーグルを試してみましたが、何も見つかりませんでしたが、これが本当に明らかな場合はお詫び申し上げます。

binary(1)常に長さ 8 のブール配列があり、対応するバイナリ値をフィールドに挿入したいと考えています。SQL Server 2012 を使用しています。

現在、たとえば、文字列に変換し、"10100101"次のようなクエリ文字列を作成します。また、同等"INSERT INTO Table1 VALUES('10100101');"のステートメントを取得しようとしていますSELECT"SELECT * FROM Table1 WHERE bin_val=10100101;"

ステートメントを実行すると、常に構文エラーが発生します。私は複数のバリエーションを試しました(引用符の有無など、数字を別の形式にするなど"0xA5")運がありません。

助言がありますか?

ps Javaでコードを書く

4

2 に答える 2

2

まず、2進数ベースの数値を10進数ベースの数値に変換する必要があります。次に、その値をデータ型に変換するだけですBINARY。したがって、文字列が常に8ビット長であると仮定すると、次のことを試すことができます。

DECLARE @BinaryNumber CHAR(8)
SET @BinaryNumber = '10100101'
INSERT INTO Table1
SELECT  CAST(SUBSTRING(@BinaryNumber,8,1)+
             SUBSTRING(@BinaryNumber,7,1)*2+
             SUBSTRING(@BinaryNumber,6,1)*4+
             SUBSTRING(@BinaryNumber,5,1)*8+
             SUBSTRING(@BinaryNumber,4,1)*16+
             SUBSTRING(@BinaryNumber,3,1)*32+
             SUBSTRING(@BinaryNumber,2,1)*64+
             SUBSTRING(@BinaryNumber,1,1)*128 AS BINARY(1))
于 2013-02-14T18:57:28.090 に答える
0

私はSQL Serverで働いていませんが、次のようなことが必要だと思います

INSERT INTO Table1 VALUES( CAST(10100101  AS BINARY(1)) );

詳細はこちら
http://msdn.microsoft.com/en-us/library/ms188362.aspx

于 2013-02-14T18:39:32.000 に答える