web-dev-qa-db-ja.com

SQL Serverで1/0およびNOT True / Falseとしてビット値を返す

BitValue列を持つSQL Server 2000のテーブルがあります。ただし、SQL Server Management StudioではTrue/Falseとして表示されています。 Select * from Tablename BitValue Columnの値をTrue/Falseとして返します。 True/Falseではなく、ビット(1/0)として値を返すように強制するにはどうすればよいですか?ヘルプは本当にありがたいですか?

27
Butters

このスクリプトを試してみてください。おそらく役に立つでしょう:

SELECT CAST('TRUE' as bit) -- RETURN 1
SELECT CAST('FALSE' as bit) --RETURN 0

とにかく、常に1または0の値を使用します(TRUEまたはFALSEではありません)。例に従って、更新スクリプトは次のようになります。

Update Table Set BitField=CAST('TRUE' as bit) Where ID=1
38
Gaston Flores

クエリを変更して、必要な出力を生成します。

それらをintにキャストしてみてください:

select cast(bitFlag as int)

または、必要に応じて、caseを使用します。

select (case when bitFlag = 0 then 0 else 1 end)
17
Gordon Linoff

これは、次の例のようにCASE WHENを使用して0/1に変更できます。

SELECT 
 CASE WHEN SchemaName.TableName.BitFieldName = 'true' THEN 1 ELSE 0 END AS 'bit Value' 
 FROM SchemaName.TableName
5
Ashraf Abusada
 Try this:- SELECT Case WHEN COLUMNNAME=0 THEN 'sex'
              ELSE WHEN COLUMNNAME=1 THEN 'Female' END AS YOURGRIDCOLUMNNAME FROM YOURTABLENAME

trueまたはfalse列のみのクエリで

0
Dipak Rathod

選択クエリでこのことを渡すだけです。 CASEを使用

CASE WHEN  gender=0 then 'Female' WHEN  gender=1 then 'Male' END as Genderdisp
0
Vishal Parmar