Sql server SQL-列不是字母顺序的
列不按字母顺序排列,因为我不能将“order by”与“distinct”一起使用。请帮助我 我的问题是:Sql server SQL-列不是字母顺序的,sql-server,tsql,dynamic-sql,Sql Server,Tsql,Dynamic Sql,列不按字母顺序排列,因为我不能将“order by”与“distinct”一起使用。请帮助我 我的问题是: DECLARE @cols AS NVARCHAR(MAX), @query AS NVARCHAR(MAX); SET @cols = STUFF((SELECT distinct ',MAX(CASE WHEN KullaniciAdi = ''' + p.KullaniciAdi + ''' THEN KisiAdi END) AS ' + QUOTENAME
DECLARE @cols AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX);
SET @cols = STUFF((SELECT distinct ',MAX(CASE WHEN KullaniciAdi = ''' + p.KullaniciAdi + ''' THEN KisiAdi END) AS ' + QUOTENAME(p.KullaniciAdi)
FROM Populer p FOR XML PATH(''), TYPE ).value('.', 'NVARCHAR(MAX)') ,1,1,'')
set @query = 'SELECT top 100 ' + @cols + ' FROM ( SELECT KullaniciAdi,KisiAdi,ROW_NUMBER() OVER (PARTITION BY KullaniciAdi ORDER BY EklenmeTarihi) AS RowNum FROM Populer ) x GROUP BY RowNum '
EXECUTE(@query)
结果:
当然可以。关键是用
分组方式
替换不同的
。然后使用“订购依据”:
SET @cols = STUFF((SELECT ', MAX(CASE WHEN KullaniciAdi = ''' + p.KullaniciAdi + ''' THEN KisiAdi END) AS ' + QUOTENAME(p.KullaniciAdi)
FROM Populer p
GROUP BY KullaniciAdi
ORDER BY p.KullaniciAdi
FOR XML PATH(''), TYPE ).value('.', 'NVARCHAR(MAX)'
), 1, 1, ''
) ;
你当然可以。关键是用
分组方式
替换不同的
。然后使用“订购依据”:
SET @cols = STUFF((SELECT ', MAX(CASE WHEN KullaniciAdi = ''' + p.KullaniciAdi + ''' THEN KisiAdi END) AS ' + QUOTENAME(p.KullaniciAdi)
FROM Populer p
GROUP BY KullaniciAdi
ORDER BY p.KullaniciAdi
FOR XML PATH(''), TYPE ).value('.', 'NVARCHAR(MAX)'
), 1, 1, ''
) ;
解决此问题的一种方法是使查询成为派生表:
SELECT * FROM
(SELECT DISTINCT {the rest of your current query}) t
ORDER BY SomeColumn
解决此问题的一种方法是使查询成为派生表:
SELECT * FROM
(SELECT DISTINCT {the rest of your current query}) t
ORDER BY SomeColumn
问题是什么?我希望按字母顺序对列进行排序请记住,您可以对整行进行排序,而不仅仅是单列。当
选择DISTINCT
时,只能按顺序使用选定的列。很有意义。我创建的列的名称应该是可能的。有什么问题吗?我希望按字母顺序对列进行排序请记住,您可以对整行进行排序,而不仅仅是单列。当选择DISTINCT
时,只能按顺序使用选定的列。很有道理。我创建的列的名称应该是可能的。我得到了这个错误:“如果指定了select DISTINCT,则ORDER BY items必须出现在select列表中。”@HasanKaanTURAN。我懂了。您可以使用分组方式
解决此问题。我更新了答案。@HasanKaanTURAN。您的意思是,分组依据
没有解决问题?@GordonLinoff Yes我收到此错误:“如果指定了select DISTINCT,则ORDER BY项目必须出现在选择列表中。”@HasanKaanTURAN。我懂了。您可以使用分组方式
解决此问题。我更新了答案。@HasanKaanTURAN。你是说分组依据没有解决问题?@GordonLinoff是的,我的sql技能还不够。。你能帮我解决我的问题吗?我的sql技能还不够。。你能帮我解答一下我的问题吗?