Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 导致错误的两个独立案例陈述_Sql - Fatal编程技术网

Sql 导致错误的两个独立案例陈述

Sql 导致错误的两个独立案例陈述,sql,Sql,在我刚刚 CASE obf.field_type WHEN 'Select One' THEN obsc.label ELSE ocd.data END AS value 它成功了。 现在我想添加一个例子,检查ga.bases是否为null,然后使用ga1.bases,如果ga.bases不为null,则使用ga.bases。所以我做了这个声明 CAS

在我刚刚

CASE obf.field_type
                WHEN 'Select One'
                        THEN obsc.label
                ELSE ocd.data
                END AS value
它成功了。 现在我想添加一个例子,检查ga.bases是否为null,然后使用ga1.bases,如果ga.bases不为null,则使用ga.bases。所以我做了这个声明

CASE ga.bases
        WHEN  ga.bases IS NULL THEN
            ga1.bases
        ELSE
            ga.bases
        END 
现在,当我把这两者放在一起时,它们的工作原理如下:

CASE obf.field_type
                WHEN 'Select One'
                        THEN obsc.label
                ELSE ocd.data
                END AS value

        CASE ga.bases
        WHEN  ga.bases IS NULL THEN
            ga1.bases
        ELSE
            ga.bases
        END 
我得到以下错误:

ERROR:  syntax error at or near "CASE"
LINE 12:   CASE ga.bases
           ^

********** Error **********

ERROR: syntax error at or near "CASE"
SQL state: 42601
Character: 298

我不明白为什么会出错,或者我将如何着手解决此问题

我想您只需要一个逗号:

    (CASE obf.field_type
          WHEN 'Select One'
                    THEN obsc.label
          ELSE ocd.data
     END) AS value,
    (CASE ga.bases
          WHEN  ga.bases IS NULL
          THEN ga1.bases
          ELSE ga.bases
    END)

我想你只需要一个逗号:

    (CASE obf.field_type
          WHEN 'Select One'
                    THEN obsc.label
          ELSE ocd.data
     END) AS value,
    (CASE ga.bases
          WHEN  ga.bases IS NULL
          THEN ga1.bases
          ELSE ga.bases
    END)

我想你只需要一个逗号:

    (CASE obf.field_type
          WHEN 'Select One'
                    THEN obsc.label
          ELSE ocd.data
     END) AS value,
    (CASE ga.bases
          WHEN  ga.bases IS NULL
          THEN ga1.bases
          ELSE ga.bases
    END)

我想你只需要一个逗号:

    (CASE obf.field_type
          WHEN 'Select One'
                    THEN obsc.label
          ELSE ocd.data
     END) AS value,
    (CASE ga.bases
          WHEN  ga.bases IS NULL
          THEN ga1.bases
          ELSE ga.bases
    END)

两个case语句之间缺少一个逗号

另外,第二个案例看起来有点奇怪。您不能使用这种形式的大小写测试NULL,请尝试以下方法:

CASE
  WHEN ga.bases IS NULL THEN ga1.bases
  ELSE ga.bases
END
注意,
案例
之后没有值

但更容易的是:

COALESCE(ga.bases, ga1.bases)

两个case语句之间缺少一个逗号

另外,第二个案例看起来有点奇怪。您不能使用这种形式的大小写测试NULL,请尝试以下方法:

CASE
  WHEN ga.bases IS NULL THEN ga1.bases
  ELSE ga.bases
END
注意,
案例
之后没有值

但更容易的是:

COALESCE(ga.bases, ga1.bases)

两个case语句之间缺少一个逗号

另外,第二个案例看起来有点奇怪。您不能使用这种形式的大小写测试NULL,请尝试以下方法:

CASE
  WHEN ga.bases IS NULL THEN ga1.bases
  ELSE ga.bases
END
注意,
案例
之后没有值

但更容易的是:

COALESCE(ga.bases, ga1.bases)

两个case语句之间缺少一个逗号

另外,第二个案例看起来有点奇怪。您不能使用这种形式的大小写测试NULL,请尝试以下方法:

CASE
  WHEN ga.bases IS NULL THEN ga1.bases
  ELSE ga.bases
END
注意,
案例
之后没有值

但更容易的是:

COALESCE(ga.bases, ga1.bases)


你忘了在两者之间加逗号了吗?你忘了在两者之间加逗号了吗?你忘了在两者之间加逗号了吗?你忘了在两者之间加逗号了吗?只有在他想要两列时才对,我不确定,因为他只提供了一个别名。如果我只想显示一列,我将如何更改它?可能将两个值串联起来。你还没有说你正在使用什么RDBMS,但是对于mysql来说,
concat(a,b)
或者对于postgres来说,
a | | b
可能对你有用。不清楚您是否需要一个值,因为您在第一个
案例
之后将
作为值
,但如果您将两个值合并在一起(即
作为值
将在最后出现),则这是不允许的。合并最终给出了我想要的内容,但它仍然显示了其他两列。第1列=树第2列=驻车合并给我输出I disire,但其他两列仍然存在。只有当他想要两列时,有没有办法去掉另外两列,并且仍然使用COALESCE workCorrect,我不确定,因为他只提供了一个别名。如果我只想显示一列,我将如何更改它?可能会连接这两个值。你还没有说你正在使用什么RDBMS,但是对于mysql来说,
concat(a,b)
或者对于postgres来说,
a | | b
可能对你有用。不清楚您是否需要一个值,因为您在第一个
案例
之后将
作为值
,但如果您将两个值合并在一起(即
作为值
将在最后出现),则这是不允许的。合并最终给出了我想要的内容,但它仍然显示了其他两列。第1列=树第2列=驻车合并给我输出I disire,但其他两列仍然存在。只有当他想要两列时,有没有办法去掉另外两列,并且仍然使用COALESCE workCorrect,我不确定,因为他只提供了一个别名。如果我只想显示一列,我将如何更改它?可能会连接这两个值。你还没有说你正在使用什么RDBMS,但是对于mysql来说,
concat(a,b)
或者对于postgres来说,
a | | b
可能对你有用。不清楚您是否需要一个值,因为您在第一个
案例
之后将
作为值
,但如果您将两个值合并在一起(即
作为值
将在最后出现),则这是不允许的。合并最终给出了我想要的内容,但它仍然显示了其他两列。第1列=树第2列=驻车合并给我输出I disire,但其他两列仍然存在。只有当他想要两列时,有没有办法去掉另外两列,并且仍然使用COALESCE workCorrect,我不确定,因为他只提供了一个别名。如果我只想显示一列,我将如何更改它?可能会连接这两个值。你还没有说你正在使用什么RDBMS,但是对于mysql来说,
concat(a,b)
或者对于postgres来说,
a | | b
可能对你有用。不清楚您是否需要一个值,因为您在第一个
案例
之后将
作为值
,但如果您将两个值合并在一起(即
作为值
将在最后出现),则这是不允许的。合并最终给出了我想要的内容,但它仍然显示了其他两列。第1列=树第2列=驻车合并给我输出I disire,但其他两列仍然存在。有没有办法摆脱另外两个列,仍然进行合并工作