我在SQL Server 2000中有一个带有BitValue列的表.但是,它在SQL Server Management Studio中显示为True/False.当我这样做时,Select * from Tablename
它返回BitValue列值为True/False.如何强制它将值返回为位(1/0)而不是True/False?任何帮助将非常感谢?
Gas*_*res 39
试试这个脚本,也许会有用:
SELECT CAST('TRUE' as bit) -- RETURN 1
SELECT CAST('FALSE' as bit) --RETURN 0
Run Code Online (Sandbox Code Playgroud)
无论如何,我总是使用值1或0(不是TRUE或FALSE).按照您的示例,更新脚本将是:
Update Table Set BitField=CAST('TRUE' as bit) Where ID=1
Run Code Online (Sandbox Code Playgroud)
Gor*_*off 17
修改查询以生成所需的输出.
尝试将它们转换为int:
select cast(bitFlag as int)
Run Code Online (Sandbox Code Playgroud)
或者,如果您愿意,请使用case
:
select (case when bitFlag = 0 then 0 else 1 end)
Run Code Online (Sandbox Code Playgroud)
可以使用CASE WHEN
以下示例将其更改为0/1 :
SELECT
CASE WHEN SchemaName.TableName.BitFieldName = 'true' THEN 1 ELSE 0 END AS 'bit Value'
FROM SchemaName.TableName
Run Code Online (Sandbox Code Playgroud)