使用 PIVOT 和 UNPIVOT sql server

 

Select [UserID],[Username],[DisplayName],[FirstName],[LastName],[Email],
			[Address],[City],[Region],[PostalCode],[Country],[Telephone],[HowFind],[EffectiveDate]

		from 
		(
		SELECT u.UserID,		
			u.FirstName,
			u.LastName,
			u.Email,
			u.Username,
			u.DisplayName,
			up.PropertyValue,
			ppd.PropertyName,
			ur.EffectiveDate
		FROM Users u
			cross join ProfilePropertyDefinition ppd
			inner join UserProfile up on up.UserID = u.UserID and ppd.PropertyDefinitionID = up.PropertyDefinitionID
			inner JOIN UserRoles ur ON u.UserID = ur.UserID
			inner JOIN UserPortals ups ON u.UserID = ups.UserID
		WHERE
			u.UserID in (SELECT UserID from UserPortals Where PortalID = @PortalId) and
			ppd.PortalID = @PortalId and 
			ur.RoleID = (SELECT [RoleID] FROM [Roles] WHERE RoleName='Restricted User' and PortalID = @PortalId)

		
		) t
	pivot 
	(
		max(PropertyValue)
		for PropertyName in ([Address],[City],[Region],[PostalCode],[Country],[Telephone],[HowFind]) 
	) pvt 
ORDER BY [UserID]

 

参考:http://msdn.microsoft.com/zh-cn/library/ms177410(v=SQL.100).aspx

转载于:https://www.cnblogs.com/nevernet/archive/2010/09/17/1829449.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值