【问题标题】:How to create column in SQL query with custom text如何使用自定义文本在 SQL 查询中创建列
【发布时间】:2017-04-10 13:56:57
【问题描述】:

是否可以使用 sql 查询创建自定义列,并在该查询中添加一些自定义文本,例如该查询中的错误类型,或者我需要创建表,我将在其中插入错误类型, 并在 with joins 之后添加该列?

例如查询看起来像这样(没有添加额外的列来说明什么是错误类型,因为,我不知道是否可以这样做)

SELECT id,aa,bb,NULL AS cc, NULL AS dd
FROM test
WHERE aa=SomeRequirement AND 
      bb=SomeRequirement

UNION ALL

SELECT id,NULL,NULL,cc,dd
FROM test2
WHERE cc=SomeRequirement AND
      dd=SomeRequirement

想要的结果是

id| TextForError               |  aa      |   bb    |    cc    |    dd
1 | thisRowIsNotGoodBecause..  |  someData| someData| someData | someData

还有一个问题,如果我需要创建包含我想要显示的错误的表,如果我没有引用该行的典型错误的键,如何添加该错误?

【问题讨论】:

  • 是的。只需将列添加到选择中
  • @Strawberry 好的,我知道,但是,如何在该列中添加我想要的文本?
  • 'my text here' as my_column_name
  • @Strawberry 非常感谢!!我不知道这是可能的...再次感谢您

标签: mysql sql


【解决方案1】:

@Strawberry 写了需要的东西,只需要放

SELECT id,'my text error' as error,aa,bb,NULL AS cc, NULL AS dd
FROM test
WHERE aa=SomeRequirement AND 
      bb=SomeRequirement

这将是我想要的工作。

【讨论】:

    【解决方案2】:

    你的意思是这样的吗?

        SELECT
        id,
        CASE
        WHEN condition1 THEN 'Error Type 1'
        WHEN condition2 THEN 'Error Type 2'
        ELSE 'Unknown Error Type'
        END as Error,
        aa,
        bb,
        cc,
        dd
    

    【讨论】:

    • 没有。不是那样的
    • @NCRANKSHAW Strawberry 写了我正在寻找的查询,感谢您的努力。我不知道我可以在查询中使用案例
    【解决方案3】:

    条件:

    如果ColCompletedByColCompletedAt 列不为空,则必须显示'ARRIVED',否则如果不满足条件,'NOT ARRIVED' 将显示在自定义列ColCustomStatus 中。

    (SELECT VanColId,
        CASE
            WHEN ColCompletedBy IS NOT NULL AND ColCompletedAt IS NOT NULL THEN 'ARRIVED'
            ELSE 'NOT ARRIVED'
        END AS ColCustomStatus
    FROM VanTableEvents) vanEvt
    

    注意:vanEvt 是表VanTableEvents 的别名,此查询使用MS SQL Server 2017 进行测试

    希望它会希望很多。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-03
      • 2021-06-10
      • 2014-09-06
      • 2014-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多