加入收藏 | 设为首页 | 会员中心 | 我要投稿 衡阳站长网 (https://www.0734zz.cn/)- 数据集成、设备管理、备份、数据加密、智能搜索!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql – 从已连接表的列表中选择唯一列名

发布时间:2021-05-26 10:35:24 所属栏目:MsSql教程 来源:网络整理
导读:我有一个表列表,可以通过相同的PK列连接在一起.由于这个表列表可能因项目而异,我想创建一个足够动态的查询来从这些表中提取所有唯一列. For example,I have three tables below:Table A (PK field,column1,column 2)Table B (PK field,column3,column 4)Table

输出:

SELECT 
      [column 6] = MAX([column 6]),[column1] = MAX([column1]),[column2] = MAX([column2]),[column3] = MAX([column3]),[column4] = MAX([column4]),[column5] = MAX([column5]),[PK_field] 
FROM (
    SELECT [column 6] = NULL,[column1],[column2],[column3] = NULL,[column4] = NULL,[column5] = NULL,[PK_field] FROM [dbo].[A]
     UNION ALL
    SELECT [column 6] = NULL,[column1] = NULL,[column2] = NULL,[column3],[column4],[PK_field] FROM [dbo].[B]
     UNION ALL
    SELECT [column 6],[column5],[PK_field] FROM [dbo].[C]
) t 
GROUP BY [PK_field]

结果:

column 6    column1     column2     column3     column4     column5     PK_field
----------- ----------- ----------- ----------- ----------- ----------- -----------
6           1           2           NULL        NULL        5           1
NULL        1           2           3           4           NULL        2
6           NULL        NULL        NULL        NULL        5           3

脚本更新:

DECLARE @SQL NVARCHAR(2000) -> NVARCHAR(MAX)

DDL的输出:

SELECT 
  [blaiseKey_code],[bDEM_BOP_q1stParentBornNZ] = MAX([bDEM_BOP_q1stParentBornNZ]),[bDEM_BOP_q2ndParentBornNZ] = MAX([bDEM_BOP_q2ndParentBornNZ]),[bDEM_BOP_qHowManyParentBornNZ] = MAX([bDEM_BOP_qHowManyParentBornNZ]),[bDEM_BOP_qHowManyRaised] = MAX([bDEM_BOP_qHowManyRaised]),[bDEM_WOR_q2Jobs1HrsIntro] = MAX([bDEM_WOR_q2Jobs1HrsIntro]),[bDEM_WOR_q2Jobs2HrsIntro] = MAX([bDEM_WOR_q2Jobs2HrsIntro]),[bDEM_WOR_q2JobsNoHrsIntro] = MAX([bDEM_WOR_q2JobsNoHrsIntro]),[bDEM_WOR_qEmployArrangement] = MAX([bDEM_WOR_qEmployArrangement]),[bDEM_WOR_qFeelAboutJob] = MAX([bDEM_WOR_qFeelAboutJob]),[bDEM_WOR_qJobsNum] = MAX([bDEM_WOR_qJobsNum]),[bDEM_WOR_qJobsNumNR] = MAX([bDEM_WOR_qJobsNumNR]),[bDEM_WOR_qMainTasks] = MAX([bDEM_WOR_qMainTasks]),[bDEM_WOR_qMainTasksNR] = MAX([bDEM_WOR_qMainTasksNR]),[bDEM_WOR_qOccupation] = MAX([bDEM_WOR_qOccupation]),[bDEM_WOR_qOccupationNR] = MAX([bDEM_WOR_qOccupationNR]),[bDEM_WOR_qPaidWorkIntro] = MAX([bDEM_WOR_qPaidWorkIntro]),[bDEM_WOR_qPermEmployee] = MAX([bDEM_WOR_qPermEmployee]),[bDEM_WOR_tabDEM_T2_fTotMins] = MAX([bDEM_WOR_tabDEM_T2_fTotMins]),[fCountryName] = MAX([fCountryName]),[q3MthsStudy] = MAX([q3MthsStudy]),[qAge] = MAX([qAge]),[qAge15OrOver] = MAX([qAge15OrOver]),[qAgeNR] = MAX([qAgeNR]),[qAgeRange] = MAX([qAgeRange]),[qArriveNZMth] = MAX([qArriveNZMth]),[qArriveNZYr] = MAX([qArriveNZYr]),[qArriveNZYrNR] = MAX([qArriveNZYrNR]),[qAwayFromWork] = MAX([qAwayFromWork]),[qBornInNZ] = MAX([qBornInNZ]),[qCouldStartLastWk] = MAX([qCouldStartLastWk]),[qCountryOfBirth] = MAX([qCountryOfBirth]),[qDidPaidWork] = MAX([qDidPaidWork]),[qDOB] = MAX([qDOB]),[qDOBNR] = MAX([qDOBNR]),[qFamilyBusWork] = MAX([qFamilyBusWork]),[qHasJobToStart] = MAX([qHasJobToStart]),[qHighestQual] = MAX([qHighestQual]),[qHighestQualOth] = MAX([qHighestQualOth]),[qHighestQualOthNR] = MAX([qHighestQualOthNR]),[qHighestQualYr] = MAX([qHighestQualYr]),[qHighestQualYrNR] = MAX([qHighestQualYrNR]),[qIncTotalAmt] = MAX([qIncTotalAmt]),[qJobSearchA] = MAX([qJobSearchA]),[qJobSearchB] = MAX([qJobSearchB]),[qJobSearchC] = MAX([qJobSearchC]),[qJobSearchD] = MAX([qJobSearchD]),[qJobSearchE] = MAX([qJobSearchE]),[qJobSearchF] = MAX([qJobSearchF]),[qJobSearchG] = MAX([qJobSearchG]),[qJobSearchH] = MAX([qJobSearchH]),[qJobSearchI] = MAX([qJobSearchI]),[qJobSearchOth] = MAX([qJobSearchOth]),[qJobSearchOthNR] = MAX([qJobSearchOthNR]),[qLookedForWork] = MAX([qLookedForWork]),[qMaoriDescent] = MAX([qMaoriDescent]),[qNotEligible] = MAX([qNotEligible]),[qPostSchQual] = MAX([qPostSchQual]),[qSchQual] = MAX([qSchQual]),[qSchQualOth] = MAX([qSchQualOth]),[qSchQualOthNR] = MAX([qSchQualOthNR]),[qSchQualYr] = MAX([qSchQualYr]),[qSchQualYrNR] = MAX([qSchQualYrNR]),[qSex] = MAX([qSex]),[qThingsWorthwhileScale] = MAX([qThingsWorthwhileScale]),[qWorkIntro] = MAX([qWorkIntro]) 
FROM 
(
SELECT [bDEM_BOP_q1stParentBornNZ],[bDEM_BOP_q2ndParentBornNZ],[bDEM_BOP_qHowManyParentBornNZ],[bDEM_BOP_qHowManyRaised],[bDEM_WOR_q2Jobs1HrsIntro],[bDEM_WOR_q2Jobs2HrsIntro],[bDEM_WOR_q2JobsNoHrsIntro],[bDEM_WOR_qEmployArrangement],[bDEM_WOR_qFeelAboutJob],[bDEM_WOR_qJobsNum],[bDEM_WOR_qJobsNumNR],[bDEM_WOR_qMainTasks],[bDEM_WOR_qMainTasksNR],[bDEM_WOR_qOccupation],[bDEM_WOR_qOccupationNR],[bDEM_WOR_qPaidWorkIntro],[bDEM_WOR_qPermEmployee],[bDEM_WOR_tabDEM_T2_fTotMins],[blaiseKey_code],[fCountryName],[q3MthsStudy],[qAge],[qAge15OrOver],[qAgeNR],[qAgeRange],[qArriveNZMth],[qArriveNZYr],[qArriveNZYrNR],[qAwayFromWork],[qBornInNZ],[qCouldStartLastWk],[qCountryOfBirth],[qDidPaidWork],[qDOB],[qDOBNR],[qFamilyBusWork],[qHasJobToStart],[qHighestQual],[qHighestQualOth],[qHighestQualOthNR],[qHighestQualYr],[qHighestQualYrNR],[qIncTotalAmt],[qJobSearchA],[qJobSearchB],[qJobSearchC],[qJobSearchD],[qJobSearchE],[qJobSearchF],[qJobSearchG],[qJobSearchH],[qJobSearchI],[qJobSearchOth],[qJobSearchOthNR],[qLookedForWork],[qMaoriDescent],[qNotEligible],[qPostSchQual],[qSchQual],[qSchQualOth],[qSchQualOthNR],[qSchQualYr],[qSchQualYrNR],[qSex],[qThingsWorthwhileScale] = NULL,[qWorkIntro] FROM [dbo].[G_bDEM]
 UNION ALL
SELECT [bDEM_BOP_q1stParentBornNZ] = NULL,[bDEM_BOP_q2ndParentBornNZ] = NULL,[bDEM_BOP_qHowManyParentBornNZ] = NULL,[bDEM_BOP_qHowManyRaised] = NULL,[bDEM_WOR_q2Jobs1HrsIntro] = NULL,[bDEM_WOR_q2Jobs2HrsIntro] = NULL,[bDEM_WOR_q2JobsNoHrsIntro] = NULL,[bDEM_WOR_qEmployArrangement] = NULL,[bDEM_WOR_qFeelAboutJob] = NULL,[bDEM_WOR_qJobsNum] = NULL,[bDEM_WOR_qJobsNumNR] = NULL,[bDEM_WOR_qMainTasks] = NULL,[bDEM_WOR_qMainTasksNR] = NULL,[bDEM_WOR_qOccupation] = NULL,[bDEM_WOR_qOccupationNR] = NULL,[bDEM_WOR_qPaidWorkIntro] = NULL,[bDEM_WOR_qPermEmployee] = NULL,[bDEM_WOR_tabDEM_T2_fTotMins] = NULL,[fCountryName] = NULL,[q3MthsStudy] = NULL,[qAge] = NULL,[qAge15OrOver] = NULL,[qAgeNR] = NULL,[qAgeRange] = NULL,[qArriveNZMth] = NULL,[qArriveNZYr] = NULL,[qArriveNZYrNR] = NULL,[qAwayFromWork] = NULL,[qBornInNZ] = NULL,[qCouldStartLastWk] = NULL,[qCountryOfBirth] = NULL,[qDidPaidWork] = NULL,[qDOB] = NULL,[qDOBNR] = NULL,[qFamilyBusWork] = NULL,[qHasJobToStart] = NULL,[qHighestQual] = NULL,[qHighestQualOth] = NULL,[qHighestQualOthNR] = NULL,[qHighestQualYr] = NULL,[qHighestQualYrNR] = NULL,[qIncTotalAmt] = NULL,[qJobSearchA] = NULL,[qJobSearchB] = NULL,[qJobSearchC] = NULL,[qJobSearchD] = NULL,[qJobSearchE] = NULL,[qJobSearchF] = NULL,[qJobSearchG] = NULL,[qJobSearchH] = NULL,[qJobSearchI] = NULL,[qJobSearchOth] = NULL,[qJobSearchOthNR] = NULL,[qLookedForWork] = NULL,[qMaoriDescent] = NULL,[qNotEligible] = NULL,[qPostSchQual] = NULL,[qSchQual] = NULL,[qSchQualOth] = NULL,[qSchQualOthNR] = NULL,[qSchQualYr] = NULL,[qSchQualYrNR] = NULL,[qSex] = NULL,[qThingsWorthwhileScale],[qWorkIntro] = NULL FROM [dbo].[G_bLWW]
) t 
GROUP BY [blaiseKey_code]

(编辑:衡阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读