当前位置: 首页 > 面试题库 >

sqlite:有没有办法在SELECT子句中产生条件OR / COALESCE?

彭洲
2023-03-14
问题内容

我有以下观点:

CREATE VIEW FilmTableView AS

    SELECT  (TitleSP || " / " || TitleEN) as Title,  
            CompanyName, 
            CoverURI,
            CompanyFilmRelation.CompanyId,
            CompanyFilmRelation.FilmId

    FROM    Film
    JOIN    CompanyFilmRelation on CompanyFilmRelation.FilmId = Film.FilmId 
    JOIN    Company on CompanyFilmRelation.CompanyId = Company.CompanyId

    ORDER BY Title;

但我最终可能会得到其中TitleSP或TitleEN为空的记录。在这种情况下,我只想包含不为null的任何列,并且不包含“ /”。

有没有办法做到这一点?也就是说,遵循以下逻辑:

if(TitleSP && TitleEN)
   select (TitleSP || " / " || TitleEN) as Title
else
   select (TitleSP ? TitleSP : TitleEn) as Title

问题答案:
SELECT CASE WHEN (TitleSP = '' OR TitleSP IS NULL)
                THEN COALESCE(TitleEN, '')
            WHEN (TitleEN = '' OR TitleEN IS NULL)
                THEN TitleSP
            ELSE (TitleSP || ' / ' || TitleEN)
       END AS Title, 
...


 类似资料:
  • 问题内容: 我正在尝试使用以下语句从表中选择和修剪所有条目: 但是我得到一个错误。有没有一种方法可以返回所有选定的条目,以便在每个字符串的开头和结尾将它们修剪为空白字符? 问题答案: 您需要手动指定每个字符串列: 您的建议还有另一个问题。是表格中每列的占位符,因此修剪会有问题。 使用(提供的代码只是PoC,还有很多改进的空间): 和表功能: 最后的电话: db <>fiddle演示

  • 问题内容: 我想从数据库中的表中获取列名列表。使用编译指示,我会得到一个元组列表,其中包含很多不需要的信息。有没有办法只获取列名?所以我最终可能会遇到这样的事情: [Column1,Column2,Column3,Column4] 之所以绝对需要此列表,是因为我想在列表中搜索列名并获取索引,因为很多代码中都使用了索引。 有没有办法得到这样的清单? 谢谢 问题答案: 您可以使用sqlite3和pep

  • 我试图从本地SQLite数据库中检索值。表的条目按“itemnumber ASC”排序。 当使用多个条件进行查询时,我希望所选条目按我的where条件的顺序排序。 数据库: 查询: 结果: 但它需要像这样:

  • 我正在运行如下查询: 用户有时会直接提供COLNAME,因此我希望避免在代码中注入sql。因此,我想知道是否可以将我的查询编写为: 另一种选择是将用户输入与表的所有列名匹配,但是,这种方法似乎不是这样做的好方法。

  • 问题内容: 我试图避免编写单独的SQL查询来实现以下情况: 我有一个称为值的表: 值: 我想检查表中是否存在某些数据,如果存在,则返回其ID,否则将其插入并返回其ID。 (非常)幼稚的方式是: 如果id不为null,请接受。如果id为null,则: 然后再次选择它以查看其ID或使用返回的ID。 我正在尝试使上述功能合而为一。我想我已经接近了,但我还没做到:到目前为止,我明白了这一点: 我正在尝试利

  • 问题内容: 我需要检索与列表中存储的ID匹配的记录。在运行时生成的查询很简单: 相当于 很好,但是如果列表包含成百上千个ID,该怎么办?该语句将非常庞大,并且在某些时候SQL解析器可能崩溃了,或者如果不是,则性能可能会很差。 我该如何以对所检索的记录数量不太敏感的方式来执行此操作? (我不能只遍历列表并逐个检索记录的原因是,我需要数据库对我执行ORDER BY。记录必须来自按特定字段排序的数据库,