-1

たとえば、DES列とARR列に異なる値(異なる行数)を持つことができるテーブルAがあります

DES  ARR

D    B
C    E
U    M
R    D                  (values in 4 rows)

また

DES  ARR

E   M
G   H                  (values in only 2 rows)

私は以下に書かれたこのクエリを書きました

declare @A varchar(500),
declare @B varchar(500);
With B as (
Select DES as D, 
row number() partition over (Order by C) as RN
ARR as AR
from A)
Select  @A = D,
        @B = AR
from B
where RN = 1

上記のクエリでは、RN 番号 (RN =1、2、3) を変更し続けると、DES と ARR の値が得られますが、テーブルに実際に入力されている行数がわからないため、RN を効果的に使用して各行の DES および ARR 値

tSQL クエリを使用して、テーブル A の DES 列と ARR 列に値を持つ行がいくつあるかを調べるにはどうすればよいですか? DES 値と ARR 値を含む行の総数を調べた後、DES 値と ARR 値が入力されている各行から DES と ARR の値を見つけるにはどうすればよいですか? 上記のクエリを変更して、必要な結果を生成できますか?

4

3 に答える 3

0

重要なのはカウントですか、それとも各行の値を処理するだけですか?

カーソルの使用を検討しましたか?

DECLARE @A varchar(500), @B varchar(500)
DECLARE db_cursor CURSOR FOR  
SELECT DES, ARR 
FROM A
ORDER BY C

OPEN db_cursor   
FETCH NEXT FROM db_cursor INTO @A, @B  

WHILE @@FETCH_STATUS = 0   
BEGIN   
       -- Do whatever you want with @A and @B Here 

       FETCH NEXT FROM db_cursor INTO @A, @B 
END   

CLOSE db_cursor   
DEALLOCATE db_cursor 
于 2012-04-10T02:17:54.347 に答える
0

あなたの質問は紛らわしいですが、count(1) または count(*) を使用してテーブル内の行数を見つけてみましたか。

テーブル内の非 null 値の数を調べたい場合は、次を使用します

select count(column_name)
  from table_name

これにより、探しているものが得られるはずです。

于 2012-04-10T01:38:59.877 に答える
0

あなたの質問は紛らわしいですが、あなたの言うことに基づいていくつかのクエリを提案できます。

tSQL クエリを使用して、テーブル A の DES 列と ARR 列に値を持つ行がいくつあるかを調べるにはどうすればよいですか?

これを試して:

SELECT COUNT(*) AS num_rows
FROM A
WHERE DES IS NOT NULL AND ARR IS NOT NULL

それからあなたは尋ねました:

DES 値と ARR 値を含む行の総数を調べた後、DES 値と ARR 値が入力されている各行から DES と ARR の値を見つけるにはどうすればよいですか?

これはあなたが探しているものですか?

SELECT * FROM A
WHERE DES IS NOT NULL AND ARR IS NOT NULL
于 2012-04-10T02:31:51.033 に答える