Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于数据更新的SQL查询_Sql_Sql Server - Fatal编程技术网

用于数据更新的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号码的最大邮件数是多少?