添加具有相同值的列到结果(而不是db上的表)

时间:2015-01-27 11:28:19

标签: sql sql-server-2012

是否有一种简单的方法可以添加NewColumnName的列,其中只有一行(即NameIwantToAssign)只包含一个值到CTE?我不想更改数据库中的表,只是我想在结果中使用新列。这是我煮熟的东西。但就性能而言,这是一个非常糟糕的主意。请帮忙。

SELECT 
     A.Something
    ,CASE 
    WHEN A.Something=NULL THEN 'NameIwantToAssign'
        ELSE 'NameIwantToAssign'
    END AS 'NewColumnName'
FROM TabA A

更新 令人惊讶的是,Raging Bull提出的方法很简单,比这段代码慢得多:

WITH B AS (SELECT 'NameIwantToAssign' as 'NewColumn')

SELECT * TabA A
LEFT JOIN B
ON A.Key <> B.NewColumn

顺便说一句。出于性能原因,我想从<>语句中删除ON。是否可以使用比<>更好的内容,例如IS NOTNOT EXISTS等等?

1 个答案:

答案 0 :(得分:1)

要在结果中选择一个值:

SELECT 'ValueIWantToAssign' as NameIwantToAssign,
       A.Something
FROM TabA

如果要在A.Something为空时选择值,则可以在SQL中使用COALESCE

SELECT COALESCE(A.Something,'ValueIwantToAssign')
FROM TabA

<强>解释

如果字段A.Something为null,则它将选择&#39; NameIwantToAssign&#39;。

详细了解COALESCE here