数値をbit配列で取得する方法は? 例) 5→0101

kaienn
2013-08-05 16:30 2130 1
SQLServerにて、数値をbit配列で取得する方法はありますでしょうか? 例) 5→0101
それともこういうのはアプリケーション側(Java)で処理するものでしょうか?
フラグが多いので一つのフィールドにまとめたいと思っています。

コメント

2013年 08月 06日 (12:13)
こんにちは。
イノ(inno)です。

MSSQLからでも可能です。
方法はいろいろありますが、
2つのSQLを添付しますので、ご参考ください。

--#### 方法1 ##################################################

DECLARE @InputValue int
SET @InputValue = 5

DECLARE @StrResult varchar(64)
DECLARE @i int

SET @i = 4
SET @StrResult = ''

WHILE (@i > 0)
BEGIN
SET @StrResult = CONVERT(char(1), @InputValue % 2) + @StrResult
SET @InputValue = CONVERT(int, (@InputValue / 2))

SET @i=@i-1
END

SELECT @StrResult



--#### 方法2 ##################################################

DECLARE @InputValue int
SET @InputValue = 5

DECLARE @StrResult varchar(64)
SET @StrResult = ''

WHILE (1 = 1)
BEGIN
SET @StrResult = CONVERT(char(1), @InputValue % 2) + @StrResult
SET @InputValue = CONVERT(int, (@InputValue / 2))

IF @InputValue = 0
BREAK
END

SELECT @StrResult