2017-05-21 15 views
0

は、私は1つのテーブルに多くのレコードを持っている:SQL Server 2014 Management Studioでテーブルレコードをアルファベット順にソートするにはどうすればよいですか?

私はテーブルを再作成するか、このアルファベット順にデータをソートしたい
1 dog 
2 cat 
3 lion 

1 cat 
2 dog 
3 lion 

表1

Id  int    Unchecked 
name nvarchar(50) Checked 
+0

ヒント:「名前順」。 –

+0

SELECT名FROM tblname ORDER BY名前ASC; – Xaqron

+0

一時的な時間ではなくテーブルを再作成したい。 – nasr

答えて

1

別のテーブルを作成するにはあなたのテーブルから:

CREATE TABLE T1 
(ID INT IDENTITY PRIMARY KEY NOT NULL, 
NAME NVARCHAR(50) NOT NULL 
) 
GO 

INSERT INTO T1 VALUES ('Dog'),('Cat'),('Lion'); 

SELECT ROW_NUMBER()OVER (ORDER BY NAME ASC) ID, NAME INTO T2 FROM T1 ORDER BY NAME ASC; 
+0

このコードが何をしているのか、彼の質問に答える理由をポスターに説明してください。コードのみの回答はひどく教育的なIMHOではありません。 – alroc

+0

@alrocあなたの言うことをすべてのユーザーが言うことを願っていますが、いいえ、いくつかあります。 – Sami

+0

ありがとうございますが、3列、アルファベット順ではなく多くの列で動作します。 – nasr

0

データベースでは、テーブルに挿入されたレコードの順序は、照会時に返される順序を必ずしも指示するものではありません。また、クラスタ化されたキーの順序もありません。 に表示される状況では、いつも同じ結果が出ることがありますが、これは保証されておらず、いつでも変更される場合があります。

クエリの結果は特定の順序でなければならない場合、あなたはは、クエリ内ORDER BY句(この特定の場合にORDER BY [Name] ASC)で注文することを指定する必要があります。

上記のご意見に基づき、は答えがになります。しかし、これがSQL Server(および他のリレーショナルデータベース)の仕組みです。注文が重要な場合は、からまでのデータを照会する際に、システムにデータを挿入するときを指定します。

+0

いいえ、私はサミのようなテーブルを再作成したいが、1000データです。 – nasr

+0

@nasrそして、特定の順序でクエリ出力を取得する唯一の方法は、Order Byを使用することなので、そうすることには意味がないと言っています。 – alroc

0

あなただけのテーブルのデータをソートしたい場合、あなたは、アルファベット順に従ったとしても同上のを変更するには、新しいテーブルを作成してして、新しいテーブルにレコードを移動したい場合はOrder by

Select * from table_1 order by Name 

を使用注文。

SELECT RANK() OVER (ORDER BY name) AS Id, name 
INTO newTable 
FROM table_1 
+0

いいえ、私はサミのようなテーブルを再作成したいですが、1000データです。 – nasr

+0

はい、2番目のクエリはテーブルを再作成します。 – Santhosh

関連する問題