動態獲取值我有一個這樣的表:SQL添加一列從另一列
LV1 | LV2 | LV3
A | B |C
X |Y |Null
我想增加一列,以獲得最底層,
LV1 | LV2 | LV3 |Bottom
A | B |C |C
X |Y |Null |Y
我應該如何去做? - 我使用的SQL Server
感謝
動態獲取值我有一個這樣的表:SQL添加一列從另一列
LV1 | LV2 | LV3
A | B |C
X |Y |Null
我想增加一列,以獲得最底層,
LV1 | LV2 | LV3 |Bottom
A | B |C |C
X |Y |Null |Y
我應該如何去做? - 我使用的SQL Server
感謝
使用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
謝謝。這COALESCE是我正在尋找! – Jasmine
你應該創建一個函數,然後調用這個函數的默認值:
alter table yourTable
add constraint
df_Bottom_Default
default([dbo].[your_udf_function]())
for Bottom
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
底層手段???如果有的話,你有沒有嘗試過什麼? – Sankar
是否有任何特定的條件或邏輯來獲取列值?還有,你想在你的表本身或在選擇查詢? –
@茉莉花,我發佈你的問題的答案。請嘗試查詢。 – Mansoor