这里的解决办法是<代码> 下表按列出的组别,因此每部电影只有一行,并从中计算ROW_NUMBER(
。
然后,在外壳中加入到<代码>t的衍生表。 每个电影标题仍有多个浏览器,但RowNum
将重复使用,以便你能够正确过滤@pageIndex
。
SELECT * FROM
(
SELECT ROW_NUMBER() OVER(ORDER BY " + orderField + @") AS RowNum,
mt.ID AS mt_ID,
mt.title AS mt_title,
[...]
FROM mt AS mt
INNER JOIN sttable AS st ON mt.ID =st.ID
WHERE mt.title = @variable
GROUP BY mt.ID
) mt1
INNER JOIN sttable AS st1 ON (mt1.ID = st1.ID)
WHERE mt1.RowNum BETWEEN
((@pageIndex - 1) * @pageSize + 1) AND @pageIndex*@pageSize;
您必须放弃显示代码中的外在查询结果,每当价值<代码>RowNum发生变化时,就开始新一轮产出。 这是一种非常明显的技术。
如果你想要做像MySQL sGROUP_CONCAT(
功能一样的话,这在Microsoftkou服务器(我假设你重新使用Microsoft)。
See blogs such as 缩略语
PS:根据你的口头描述,你的样本Q. 确实是明智的,因此,我最好写出一些可以理解的内容。 它没有与你的计划相匹配的保障。
评论:我不认为你需要按在座标的<条码>的任何栏目排列。 我不打算在表层的选定名单中列载st
。 表中加入的<代码>st的唯一理由是,将mt
的行文限制在st
的行文上。 但<代码> 单位:百万 ID 确保每行mt
的浏览量只有一行。 (实际上,由于这是SQ服务器,而不是MySQL,你需要指定所有<代码>mt。) www.un.org/chinese/sc/presidency.asp 按编码>条款分列的组别。
您的第二点评论:
我想首先展示有最近增加的对应记录的小行。
如果你使用分组职能,你可以增加组别的其他栏目。 例如,最新<代码>每个组<代码>m/code>的<<>t>t/code>为import(st.date_plus)
,且您可在该次表中添加这一栏。
但是,在分局中不使用ORDER。 很少有任何理由进行分类,因为通过使用分局可能会改变订单,导致联合调查网络或其他业务使用分局。
页: 1
SELECT * FROM
(
SELECT ROW_NUMBER() OVER(ORDER BY " + orderField + @") AS RowNum,
mt.ID AS mt_ID,
mt.title AS mt_title,
[...] -- other mt.* columns
MAX(st.date_added) AS latest_date_added
FROM mt AS mt
INNER JOIN sttable AS st ON mt.ID =st.ID
WHERE mt.title = @variable
GROUP BY mt.ID, -- other mt.* columns
) mt1
INNER JOIN sttable AS st1 ON (mt1.ID = st1.ID)
WHERE mt1.RowNum BETWEEN
((@pageIndex - 1) * @pageSize + 1) AND @pageIndex*@pageSize
ORDER BY mt1.latest_date_added DESC, st1.date_added DESC;