我具有例如表的列表,B C.SQL表,加入列的值
我不知道有多少列,也不是所有的這些表的列名。
我知道每個表的關鍵名稱和我想合併的列。
一個表的典型DDL將是:
CREATE TABLE [dbo].[G_bHQ_S1](
[Key_code] [nvarchar](255) NULL,
[array1_nbr] [int] NULL,
[fDSHhldDetails] [int] NULL,
[fRespName] [nvarchar](200) NULL,
[fStoreAge] [int] NULL,
[qSex] [int] NULL,
[qDOB] [datetime] NULL,
[qDOBNR] [int] NULL,
[qAge] [int] NULL,
[qAgeNR] [int] NULL,
[qAgeRange] [int] NULL,
[qAge15OrOver] [int] NULL
) ON [PRIMARY]
存儲前三列的數據將是類似:
Key_code array1_nbr fDSHhldDetails ........
W801053126H001 11 11 ........
W802078001H001 11 11 ........
W802078012H001 11 11 ........
W802078012H001 12 12 ........
W802078022H001 11 11 ........
W802078022H001 12 12 ........
........................................................
每個表只能有一個,我想一列結合起來,它將始終是array1_nbr。
對於每個唯一的Key_code,我需要將array1_nbr的值與右下一列的列名稱結合使用。
因此,對於上述數據集中的結果集將是:
Key_code fDSHhldDetails_11 fDSHhldDetails_12 ........
W801053126H001 11 null ........
W802078001H001 11 null ........
W802078012H001 11 12 ........
W802078022H001 11 12 ........
....................................................................................
能否請你幫我這個好嗎?
謝謝。
結果爲@sgeddes設置:
Key_code 11 12 ........
W801053126H001 11 null ........
我期待的列名fDSHhldDetails_11和fDSHhldDetails_12。並且fDSHhldDetails對於每個表都是未知的,但它是array1_nbr旁邊的列名稱。有沒有連接它的方法?否則,我可以手動添加它,查詢已經足夠我已經足夠了。感謝堆。
聽起來像是你試圖轉動你的結果。是否有最大數量的列或未知數?如果未知,動態SQL可能是您唯一的選擇。 – sgeddes
同意,我討厭在SQL中編寫PIVOT,因爲它的語法有點過於複雜。很多文檔和Stackoverflow上幾乎相同的問題。 – AaronLS
@sgeddes列數未知.... – nzsquall