29

我在 SQL Server 2000 中有一个带有 BitValue 列的表。但是,它在 SQL Server Management Studio 中显示为 True/False。当我执行Select * from Tablename它时,它会将 BitValue 列值返回为 True/False。如何强制它以位(1/0)而不是真/假的形式返回值?任何帮助将不胜感激?

4

5 回答 5

41

试试这个脚本,也许会有用:

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
于 2013-07-03T15:11:33.460 回答
21

修改查询以生成所需的输出。

尝试将它们转换为 int:

select cast(bitFlag as int)

或者,如果您愿意,请使用case

select (case when bitFlag = 0 then 0 else 1 end)
于 2013-07-03T15:04:36.447 回答
6

可以通过使用CASE WHEN以下示例将其更改为 0/1:

SELECT 
 CASE WHEN SchemaName.TableName.BitFieldName = 'true' THEN 1 ELSE 0 END AS 'bit Value' 
 FROM SchemaName.TableName
于 2016-05-12T12:33:48.297 回答
-1

只是你在你的选择查询中传递这些东西。使用案例

SELECT
    CASE
        WHEN gender=0 THEN 'Female' 
        WHEN gender=1 THEN 'Male'
    END 
as Gendership from Tablename;
于 2018-10-27T12:35:05.890 回答
-1
 Try this:- SELECT Case WHEN COLUMNNAME=0 THEN 'sex'
              ELSE WHEN COLUMNNAME=1 THEN 'Female' END AS YOURGRIDCOLUMNNAME FROM YOURTABLENAME

在您的查询中仅对真或假列

于 2018-10-27T12:40:45.937 回答