1

私はMsSQLサーバーを持っており、私が行っているのはテーブルから行を選択することです。現在、2つの行があるので、別のクエリを実行せずに、2番目の行の後に他の行がないかどうかを確認するにはどうすればよいでしょうか。

例えば

テーブルユーザー

id    name    pass

1     joe     123

2     bob     abc

クエリだけで2の後に行がないかどうかを確認するにはどうすればよいですか?データを選択するだけの現在のクエリと組み合わせて使用​​します。

4

3 に答える 3

2

クエリの行数を別の列として返すことができます。

SELECT id, name, pass, count(*) over () as rows
FROM users

これは、テーブル内の行数ではなく、クエリによって返される行数を示していることに注意してください。ただし、選択で「TOP n」を指定すると、「行」列には、「Topn」がなかった場合に返される行の数が表示されます。

于 2012-04-18T19:45:18.040 に答える
2

トリックをページ分割しようとしている場合は、現在のページに実際に必要なレコードよりも1つ多いレコードをクエリすることです。結果()を数え、mysql_num_rowsそれをページサイズと比較することで、「次のページ」があるかどうかを判断できます。

mysqlを使用している場合SQL_CALC_FOUND_ROWS()は、クエリで使用することもできます。このクエリは、LIMIT句なしで返される行数を計算します。たぶん、MsSQLにそれに相当するものがありますか?

于 2012-04-18T19:46:16.213 に答える
1

テーブルの最初の2行を手動で挿入していると仮定します。

それによると、私の考えは、次のようにIDが2を超える場所を選択することです。

SELECT * FROM users WHERE id > 2;

また、PHPを使用していると想定しているため、データが見つからない場合はmysql_num_rows返されます。そうでない場合は、クエリから行数が返されます。これで、ID番号の後にデータを取得するためにまたはループを0実行する必要があることがわかります。while2.2。

于 2012-04-18T20:34:03.727 に答える