我有一个类似的 mySQL 查询
SELECT configs.*, (settings.defaultConfig=configs.id) AS isDefault FROM configs, settings
其中 settings 是只有一行的表,而 settings.defaultConfig 和 configs.id 都是纯整数列,不允许 NULL 值。
现在我正在搜索执行相同操作的 mssql 查询:返回手头的配置是否为 defaultConfig。
我有一个类似的 mySQL 查询
SELECT configs.*, (settings.defaultConfig=configs.id) AS isDefault FROM configs, settings
其中 settings 是只有一行的表,而 settings.defaultConfig 和 configs.id 都是纯整数列,不允许 NULL 值。
现在我正在搜索执行相同操作的 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