sql-server - SQLite 到 TSQL - 案例语句
问题描述
我有一个最初是 sqllight 的查询,我正在尝试将其转换为 MS sql server 。相当简单的一个,但 SQL Server 不喜欢下面的行给出错误
在预期条件的上下文中指定的非布尔类型表达式,靠近“WHEN”。
CASE account NOT LIKE '%.restricted' AND usertype
我认为它需要更像下面,但我不清楚“和用户类型”。数据库中的用户类型目前是 1 或 2,但它确实允许空值。
CASE when account NOT LIKE '%.restricted' AND usertype
SELECT username
,Count(CASE account NOT LIKE '%.restricted' AND usertype
WHEN 1 THEN 1
ELSE NULL
END) AS Numberaccounts
FROM users u
WHERE u.Deleted = ''
GROUP BY u.username
不确定 and 用户类型在 sqllite 中是如何工作的。我认为它会为任何非零或非空返回 true。不确定如何返工该部分。
解决方案
在 SQLite 中,0
被评估为FALSE
并且任何非NULL
和非零值都被评估为TRUE
。
所以CASE
表达式可以写成:
CASE WHEN account NOT LIKE '%.restricted' AND usertype <> 0
这在 TSQL 中也有效。
推荐阅读
- python - 识别并存储在字典中多次出现的值(Python)
- neo4j - 需要向所有标签添加新属性,希望标签名称不以 neo4j 密码中的“IA_”开头
- java - 为什么测试函数不能访问内存数据库?
- c# - Blazor 服务器加载指示器
- github - 如何将 github 标签(问题和拉取请求)保存到 repo 中?
- java - Google Cloud Trace Opentelemetry Java 示例代码未显示在 Google Cloud Trace 仪表板上
- xamarin - 如何获取其他 Android 模拟器模型以在 VS 2019 调试器中使用?
- node.js - NVM 不会在 Mac 上更改 Node 版本
- django - FOREIGN KEY 约束失败。电子邮件地址中的 Django allauth 错误
- css - 使用 Bootstrap 放置响应式 DIV