Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有布尔返回值的MSSQL查询_Sql_Sql Server - Fatal编程技术网

带有布尔返回值的MSSQL查询

带有布尔返回值的MSSQL查询,sql,sql-server,Sql,Sql Server,我有一个类似mySQL的查询 SELECT configs.*, (settings.defaultConfig=configs.id) AS isDefault FROM configs, settings 其中,settings是一个只有一行的表,settings.defaultConfig和configs.id都是纯整数列,不允许空值 现在,我正在搜索一个mssql查询,并执行相同的操作:返回手头的配置是否为defaultConfig。使用CASE语句: CASE configs.id

我有一个类似mySQL的查询

SELECT configs.*, (settings.defaultConfig=configs.id) AS isDefault FROM configs, settings
其中,settings是一个只有一行的表,settings.defaultConfig和configs.id都是纯整数列,不允许空值


现在,我正在搜索一个mssql查询,并执行相同的操作:返回手头的配置是否为defaultConfig。

使用
CASE
语句:

CASE configs.id WHEN settings.defaultConfig THEN 1 ELSE 0 END AS isDefault

MSSQL中没有
boolean
数据类型,最接近的是
bit

我会像这样重写查询:

SELECT configs.*, 
    (case when settings.defaultConfig is null then 0 else 1 end) AS isDefault 
FROM configs left join settings on settings.defaultConfig=configs.id