我有一张这样的表:
LV1 | LV2 | LV3
A | B |C
X |Y |Null
我想添加一列来获得最低水平,
LV1 | LV2 | LV3 |Bottom
A | B |C |C
X |Y |Null |Y
我该怎么做? - 我正在使用SQL Server
谢谢
答案 0 :(得分:3)
CREATE TABLE #table(LV1 VARCHAR(10) ,LV2 VARCHAR(10) , LV3 VARCHAR(10))
INSERT INTO #table(LV1 ,LV2 , LV3)
SELECT 'A','B','C' UNION ALL
SELECT 'X','Y',null
SELECT LV1 ,LV2 , LV3 , COALESCE(LV3,LV2,LV1) Bottom
FROM #table
输出
LV1 LV2 LV3 Bottom
A B C C
X Y NULL Y
答案 1 :(得分:2)
使用CTE获得结果:
CREATE TABLE #table(LV1 VARCHAR(10) ,LV2 VARCHAR(10) , LV3 VARCHAR(10))
INSERT INTO #table(LV1 ,LV2 , LV3)
SELECT 'A','B','C' UNION ALL
SELECT 'X','Y',null
;WITH CTE (LV1 ,LV2 , LV3 , Bottom) AS
(
SELECT LV1 ,LV2 , LV3 , COALESCE(LV3,LV2,LV1)
FROM #table
)
SELECT * FROM CTE
答案 2 :(得分:0)
您应该创建一个函数,然后调用此函数作为默认值:
FileStream