是否有一种简单的方法可以添加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 NOT
,NOT EXISTS
等等?
答案 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。