0

文字とそれに続く数字(例:z98、k87、a245、a241、d7、e91、 e32、b212、r101、r32)

最初の文字を使用してアルファベット順にこの列で結果を並べ替え、その後に続く番号を使用して昇順で結果を並べ替える選択を行う方法はありますか?(例:a241、a245、b212、e32など)目的は、次のように、結果からの文字に従ってユーザーインターフェイスのデータテーブルに入力することです。

datatable_A= 
241 
245

datatable_B =
212

datatable_D= 
32
91

datatable_K=
87

datatable_R=
32
101

datatable_Z=
98
4

2 に答える 2

1

数字を文字列としてではなく数値として扱う必要がある場合は、次のようにします。

create table table1 (column1 text);
insert into table1 (column1) values
('z98'), ('k87'), ('a245'), ('a241'), ('d7'), ('e91'), ('e32'), ('b212'), ('r101'), ('r32')
;

select 
    substring(column1 from 1 for 1) as datatable, 
    substring(column1 from 2)::integer as "number"
from table1
order by 
    datatable, 
    "number"
;
 datatable | number 
-----------+--------
 a         | 241
 a         | 245
 b         | 212
 d         | 7
 e         | 32
 e         | 91
 k         | 87
 r         | 32
 r         | 101
 z         | 98
(10 rows)
于 2012-06-04T11:08:57.880 に答える
0

のようなものselect 'a' || column from tableA union select 'b' || column from tableB ... order by column asc;
自分で試してみませんでしたが、調べてみてください。

于 2012-06-04T07:06:53.063 に答える