mysql - sql查询如何使用IF和ELSE语句

标签 mysql sql if-statement union

我有查询要选择以获得答案值。我需要检查它是回答还是空。我使用 (d.AM_Answer OR null) 它不起作用。它只取空值。所以,我已经像下面这样更改了我的查询,但它不起作用。

SELECT a.QM_ID,
       a.QM_QCM_ID,
       a.QM_Question,
       a.QM_Type,
       a.QM_Parent_Id,
       c.AM_Answer,
       c.AM_Comments
FROM question_master a
INNER JOIN Assessment_master c ON (c.AM_QM_ID = a.QM_ID
                                   AND c.AM_HNM_ID = %d
                                   AND c.AM_HM_ID = %d
                                   AND c.AM_ASM_Local_Id = %@)
WHERE a.QM_Parent_Id = 0
  AND a.QM_Status = 'A'
  AND a.QM_QCM_ID = %@
  AND a.QM_QRM_Id = %@ IF(d.AM_Answer IS NULL) THEN
UNION
SELECT b.QM_ID,
       b.QM_QCM_ID,
       b.QM_Question,
       b.QM_Type,
       b.QM_Parent_Id,
       NULL,
       NULL
FROM question_master b
INNER JOIN Assessment_master d ON ((d.AM_QM_ID = b.QM_Parent_Id
                                    OR d.AM_QM_ID = b.QM_ID)
                                   AND d.AM_HNM_ID = %d
                                   AND d.AM_HM_ID = %d
                                   AND d.AM_ASM_Local_Id = %@)
WHERE b.QM_Parent_Id != 0
  AND b.QM_Status = 'A'
  AND b.QM_QCM_ID = %@
  AND b.QM_QRM_Id = %@ ELSE IF(d.AM_Answer IS NOT NULL) THEN
UNION
SELECT b.QM_ID,
       b.QM_QCM_ID,
       b.QM_Question,
       b.QM_Type,
       b.QM_Parent_Id,
       d.AM_Answer,
       d.AM_Comments
FROM question_master b
INNER JOIN Assessment_master d ON ((d.AM_QM_ID = b.QM_Parent_Id
                                    OR d.AM_QM_ID = b.QM_ID)
                                   AND d.AM_HNM_ID = %d
                                   AND d.AM_HM_ID = %d
                                   AND d.AM_ASM_Local_Id = %@)
WHERE b.QM_Parent_Id != 0
  AND b.QM_Status = 'A'
  AND b.QM_QCM_ID = %@
  AND b.QM_QRM_Id = %@ END IF

最佳答案

您可以将条件 d.answer 不为空来选择非空答案。

关于mysql - sql查询如何使用IF和ELSE语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22059924/

相关文章:

java - 重新部署后无效的 Jboss 数据源

php - Codeigniter - 在 HTML 表中显示来自三个表的数据作为数组对象

sql - postgresql 更新最新行

shell 脚本 : Define a variable within an if-statement

php - 存储注册时输入的数据

Mysql 查询从具有 varchar 数据类型的字段中获取记录以存储项目 ID

sql - 如何限制 DBeaver 数据编辑器以限制结果集大小?

mysql - 将两行合并为一行 - 肮脏且缓慢的过程

python - 给定两个 "if"语句,如果没有执行则执行一些代码

基于使用三个不同列的条件 if 逻辑的 python 标志