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