J'utilise SQL Server 2014 RTM Developer Edition. J'utilise ma requête dans SSMS et non dans SSIS. J'ai tellement de valeurs NULL dans la table que j'utilise dans ma fonction UNPIVOT.Et après Unpivot, je ne vois pas ces lignes deviennent des colonnes à cause de NULLs.If j'utilise @NULL alors je vois toutes les données correctement.unpivot null devient une chaîne vide SQL Server 2014
J'ai donc trouvé un correctif de microsoft pour SSIS (pas pour le problème SSMS). Au lieu d'appliquer ce correctif, j'ai installé SQL 2014 SP2 et redémarré la machine au lieu d'appliquer ce correctif à https://support.microsoft.com/en-us/kb/3058512 Aucune différence.
Puis j'ai installé la mise à jour cumulative 1 pour SQL Server 2014 SP2 et toujours la même chose. Pourquoi cela arrive-t-il?
DECLARE @colsUnpivot NVARCHAR(MAX)
,@query VARCHAR(MAX)
,@Table_name NVarchar(500)
,@fiscal_year Varchar(4)
SET @Table_name = 'opd_scholar'
SET @fiscal_year = '2015'
set @colsUnPivot = STUFF((SELECT ',' + QUOTENAME(code_name) from opd_lkp_scholar t Where fiscal_year = 2015 AND code_name NOT IN ('UNITID','Institution','City','State','Zip') FOR XML PATH(''), TYPE ).value('.', 'NVARCHAR(MAX)') ,1,1,'')
PRINT @colsUnPivot
set @query
= ' INSERT INTO opd_scholar_transaction ( unitid,institution,city,state,zip,code_name,lkp_value)
SELECT unitid,institution,city,state,zip,code_name,lkp_value
FROM
(
SELECT unitid,institution,city,state,zip, '+ @colsUnpivot+'
FROM '[email protected]_name+') AS cp
UNPIVOT (lkp_value for code_name IN ('[email protected]+')
) AS up'
PRINT @Query
exec(@query)
Dans ma table opd_Scholar j'ai 400 colonnes et j'ai besoin de les convertir en lignes. Et j'ai tellement de valeurs NULL dans la table opd_scholar. Mais quand j'utilise le code ci-dessus pour convertir ces lignes en colonnes, il ne montre pas les valeurs qui ont des valeurs NULL.
Merci furin mais cela remplacera nu, lls pour vider les cordes ?? Je préfère NULL comme NULL. – nick
Même si je vais pour votre suggestion, je tire dynamiquement les noms de colonnes. Comment puis-je vérifier cela pour chaque colonne? – nick
Ok, donc j'ai pensé cela, mais maintenant nouveau problème, – nick