SQL SELECT - возвращает логическое значение на основе условия По существу, я пытаюсь это сделать select u.Hostname, u.IsCustom, (u.Status = 5) as IsActive from SiteUrlMappings u Где 5 - int, представляющий "активный" URL. Конечно, это не сработает, и мой sql ржавый, как старая отвертка. Ответ 1 Вам не нужно выражение CASE Просто используйте, как работает bit: все ненулевые значения дают 1 при передаче в бит SELECT u.Hostname, u.IsCustom, ~ CAST((u.Status - 5) AS bit) AS IsActive from SiteUrlMappings u Ответ 2 SQL Server не имеет логического типа данных. Самый близкий bit SELECT u.Hostname, u.IsCustom, CAST(CASE WHEN u.Status = 5 THEN 1 ELSE 0 END AS BIT) AS IsActive FROM SiteUrlMappings u Ответ 3 Вам нужен оператор case, например: select u.Hostname, u.IsCustom, convert(bit, case when u.Status = 5 then 1 else 0 end) as IsActive from SiteUrlMappings u bit близок к истинному логическому, поскольку вы можете получить в SQL Server Ответ 4 Попробуйте следующее: SELECT u.Hostname, u.IsCustom, CASE WHEN u.Status = 5 THEN 1 ELSE 0 END AS IsActive from SiteUrlMappings u Ответ 5 Вместо этого можно использовать CASE... WHEN.
Ответ 1 Вам не нужно выражение CASE Просто используйте, как работает bit: все ненулевые значения дают 1 при передаче в бит SELECT u.Hostname, u.IsCustom, ~ CAST((u.Status - 5) AS bit) AS IsActive from SiteUrlMappings u
Ответ 2 SQL Server не имеет логического типа данных. Самый близкий bit SELECT u.Hostname, u.IsCustom, CAST(CASE WHEN u.Status = 5 THEN 1 ELSE 0 END AS BIT) AS IsActive FROM SiteUrlMappings u
Ответ 3 Вам нужен оператор case, например: select u.Hostname, u.IsCustom, convert(bit, case when u.Status = 5 then 1 else 0 end) as IsActive from SiteUrlMappings u bit близок к истинному логическому, поскольку вы можете получить в SQL Server
Ответ 4 Попробуйте следующее: SELECT u.Hostname, u.IsCustom, CASE WHEN u.Status = 5 THEN 1 ELSE 0 END AS IsActive from SiteUrlMappings u