sql - 如果存在 sql SELECT
问题描述
我正在尝试运行这个:
IF EXISTS (SELECT id_commande FROM historique WHERE id_commande = 57 AND device = 70635601)
BEGIN
SELECT id_commande FROM historique WHERE id_commande = 57 AND device = 70635601
END
ELSE
BEGIN
SELECT (MAX(id_commande)+1) FROM historique
END
我希望你能明白我想做什么。我的问题是它总是给我回报Erreur dans la requête (1064): Syntax error near 'BEGIN SELECT 1 END ELSE BEGIN SELECT 2 END' at line 2
。
感谢你们对我的帮助 !
解决方案
您可以不EXISTS
使用COALESCE()
:
SELECT
COALESCE(
(SELECT id_commande FROM historique WHERE id_commande = 57 AND device = 70635601),
(SELECT MAX(id_commande) + 1 FROM historique)
)
我假设第一个查询将只返回 1 行。
推荐阅读
- java - 如何在 Java 中使用正则表达式捕获多次出现的组
- json - 如何测试 FeignClient 解组?
- shell - 如何从 SONAME 字段中提取共享库版本?
- python - numpy.where() 返回空数组而不是替换
- javascript - 使用多个 CKEditor 字段时,图像上传在 CKEditor 中不起作用
- r - 在R中的文本字段中提取句点之前的数字
- vba - 如何使用 vba 宏按钮在 power point 幻灯片放映期间添加和调整形状?
- kubernetes - 删除“preview”和“jx-staging”环境下分别通过“jx preview”和“jx promote”部署的服务的k8s资源
- reactjs - 使用 useDispatch Hook 时出现问题 - 警告:React 检测到 Hook 的顺序发生了变化
- c++ - 在 CMAKE target_include_libraries 中理解“接口”的问题