用于数据更新的SQL查询
我需要一个查询来更新两个表中的一些数据 我的表格数据格式如下用于数据更新的SQL查询,sql,sql-server,Sql,Sql Server,我需要一个查询来更新两个表中的一些数据 我的表格数据格式如下 PAN email --------------------------------------------------- ABC1234567 email1 ABC1234567 email2 ABD2345678 email3 我想这样转换它: PAN E1 E2 E3 E4 E5 -----------------------------------
PAN email
---------------------------------------------------
ABC1234567 email1
ABC1234567 email2
ABD2345678 email3
我想这样转换它:
PAN E1 E2 E3 E4 E5
---------------------------------------------------
ABC1234567 email1 email2
ABD2345678 email3
我该怎么做?试试这个查询。这将为一个PAN号码提供最多5个电子邮件ID
SELECT D.PAN
,MAX(CASE WHEN RN=1 THEN D.EmailId ELSE '' END)E1
,MAX(CASE WHEN RN=2 THEN D.EmailId ELSE '' END)E2
,MAX(CASE WHEN RN=3 THEN D.EmailId ELSE '' END)E3
,MAX(CASE WHEN RN=4 THEN D.EmailId ELSE '' END)E4
,MAX(CASE WHEN RN=5 THEN D.EmailId ELSE '' END)E5
FROM(
SELECT PAN,
EmailId,
ROW_NUMBER() OVER(PARTITION BY PAN ORDER BY PAN) RN
FROM YourTable
)D
GROUP BY PAN
请参考这一点。没有足够的样本数据产生预期的输出。是否有任何其他列值在PAN和电子邮件1至5中指示值?无指示。有2200000条记录,对于1个pan no,有多封电子邮件需要转换columns@shwetapipaliya,您是否可以说,PAN号码的最大邮件数是多少?