:SQL Server:結果セットの最初または最後の行の値を返す関数?このような何かを行うことができ、SQL Serverの機能がある場合、私は思ったんだけど
SELECT
itemId,
itemTitle,
isFirstRow(itemId) AS isFirst,
isLastRow(itemId) AS isLast
FROM myTable
ORDER BY itemId
例の結果希望:
itemId itemTitle isFirst isLast
------ ------------ ------- ------
1 An item TRUE FALSE
2 The world FALSE FALSE
3 Code FALSE FALSE
4 Something FALSE TRUE
を事は、私が最初と最後の行の値をしたいです必ずしも結果が返される順序ではなく、表の特定の順序を表すこと。この場合、itemIdの値がキーです。
SELECT
itemId,
itemTitle,
isFirstRow(itemId ascending) as isFirst,
isLastRow(itemId ascending) as isLast
FROM myTable
ORDER BY itemTitle
itemId itemTitle isFirst isLast
------ ------------ ------- ------
1 An item TRUE FALSE
3 Code FALSE FALSE
4 Something FALSE TRUE
2 The world FALSE FALSE
または別の例:
SELECT
itemId,
itemTitle,
isFirstRow(itemTitle descending) AS isFirst,
isLastRow(itemTitle descending) AS isLast
FROM myTable
WHERE itemId > 1
ORDER BY itemId
itemId itemTitle isFirst isLast
------ ------------ ------- -----------
2 The world TRUE FALSE
3 Code FALSE FALSE
4 Something FALSE FALSE
ユースケースは、フロントエンド・アプリケーションに、その結果セットからの結果セット、または単一レコードを返す、それだけにはフロントアプリケーションを可能にするであろう個別のクエリを作成せずに、「レコード数」や「最大/最小」戦略(テキストフィールドでは機能しない)を行うことなく、特定の順序で最初または最後のレコードかどうかを知ることができます。
サブクエリがこれを行うことができるかもしれないと思っていますが、構文がどのように見えるかはわかりません。
を使用してこれを行うことができます行はありませんでしたにisLast? – SQLChao