由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 问个很挠头的简单问题 (转载)
相关主题
问一个SQLPerl/MySQL下fetchrow出错
问个小问题继续吐槽scala
应该用什么方式开发UI,即前端基于浏览器+后端web service的开发?A question about page table
问个SQL的问题ask a Javascript question
问个hash table问题C++ interview questions help
问个设计问题nnd,内存管理出问题
问个socket编程中select()的问题。one more interview question
Anybody help me on these questions?有点挠头
相关话题的讨论汇总
话题: select话题: table话题: name话题: name2话题: sp
进入Programming版参与讨论
1 (共1页)
g*****g
发帖数: 34805
1
【 以下文字转载自 Database 讨论区 】
发信人: goodbug (好虫), 信区: Database
标 题: 问个很挠头的简单问题
发信站: BBS 未名空间站 (Mon Dec 8 22:39:09 2014, 美东)
一个table两个column id, name。我有一堆id, 有duplicate,怎么才能把name顺序列
出来,包括重复的。
M*P
发帖数: 6456
2
不明白你具体要干啥。
不过这种情况我一般把两个column用一个特殊符号连起来然后sort之。

【在 g*****g 的大作中提到】
: 【 以下文字转载自 Database 讨论区 】
: 发信人: goodbug (好虫), 信区: Database
: 标 题: 问个很挠头的简单问题
: 发信站: BBS 未名空间站 (Mon Dec 8 22:39:09 2014, 美东)
: 一个table两个column id, name。我有一堆id, 有duplicate,怎么才能把name顺序列
: 出来,包括重复的。

g*****g
发帖数: 34805
3
比如说我有一个1万条数据的表,现在我有100个 id, 里面有重复,我要顺序把100个
name列出来。写个程序当然很简单,但sql能搞定不是更省事。

【在 M*P 的大作中提到】
: 不明白你具体要干啥。
: 不过这种情况我一般把两个column用一个特殊符号连起来然后sort之。

P****i
发帖数: 12972
4
select distinct name from table order by name
?

【在 g*****g 的大作中提到】
: 比如说我有一个1万条数据的表,现在我有100个 id, 里面有重复,我要顺序把100个
: name列出来。写个程序当然很简单,但sql能搞定不是更省事。

g*****g
发帖数: 34805
5
我不要排序,按着我的 id列表的 顺序,还要保留重复。

【在 P****i 的大作中提到】
: select distinct name from table order by name
: ?

P****i
发帖数: 12972
6
举个简单的例子吧

【在 g*****g 的大作中提到】
: 我不要排序,按着我的 id列表的 顺序,还要保留重复。
g*****g
发帖数: 34805
7
Table
1 name1
2 name2
3 name3
Input 3, 2, 2
Output
3 name3
2 name2
2 name2

【在 P****i 的大作中提到】
: 举个简单的例子吧
M*P
发帖数: 6456
8
把第一个放hashtable里?

★ 发自iPhone App: ChineseWeb 7.8

【在 g*****g 的大作中提到】
: Table
: 1 name1
: 2 name2
: 3 name3
: Input 3, 2, 2
: Output
: 3 name3
: 2 name2
: 2 name2

w***g
发帖数: 5958
9
还是老实跑N个select吧。非要在一个select中写又不想用临时表的话就这样
MySQL:
select id, name from YourTable,
(select 3 as id, 1 as key
union all select 2, 2
union all select 2, 3) as tmp
where YourTable.id = tmp.id order by tmp.key;
SQLServer
select id, name from YourTable,
(values (3, 1) (2,2) (2,3) as (int, id)) as Tmp
...
这个语法我不怎么记得了。但是如果有key找不到的话不就对不上了?

【在 g*****g 的大作中提到】
: Table
: 1 name1
: 2 name2
: 3 name3
: Input 3, 2, 2
: Output
: 3 name3
: 2 name2
: 2 name2

P****i
发帖数: 12972
10
join一下就好了

【在 g*****g 的大作中提到】
: Table
: 1 name1
: 2 name2
: 3 name3
: Input 3, 2, 2
: Output
: 3 name3
: 2 name2
: 2 name2

相关主题
问个设计问题Perl/MySQL下fetchrow出错
问个socket编程中select()的问题。继续吐槽scala
Anybody help me on these questions?A question about page table
进入Programming版参与讨论
g*****g
发帖数: 34805
11
我就是懒得写程序,要不然没啥难度不是。

【在 M*P 的大作中提到】
: 把第一个放hashtable里?
:
: ★ 发自iPhone App: ChineseWeb 7.8

N********n
发帖数: 8363
12

Load them into a new table w/ an extra incremental unique row Id.
Then run a query like this:
select * from newTable where inputId = id order by rowId

【在 g*****g 的大作中提到】
: 比如说我有一个1万条数据的表,现在我有100个 id, 里面有重复,我要顺序把100个
: name列出来。写个程序当然很简单,但sql能搞定不是更省事。

w***g
发帖数: 5958
13
如果id没有重复的话可以用下面的办法。
http://stackoverflow.com/questions/396748/ordering-by-the-order
有重复的话field也没用。

【在 g*****g 的大作中提到】
: Table
: 1 name1
: 2 name2
: 3 name3
: Input 3, 2, 2
: Output
: 3 name3
: 2 name2
: 2 name2

g*****g
发帖数: 34805
14
这倒是个办法,不知道能不能做select * from (list)做个临时表直接join,就省得建
表了。

【在 N********n 的大作中提到】
:
: Load them into a new table w/ an extra incremental unique row Id.
: Then run a query like this:
: select * from newTable where inputId = id order by rowId

N********n
发帖数: 8363
15

There's a "row_number()" function that SqlServer & Oracle uses to
generate rowId for select results. It probably could do the work
but feels like a temporary inefficient hack.
Bottomline a table should not allow duplicates to exist so a long
term solution is still a properly designed table.

【在 g*****g 的大作中提到】
: 这倒是个办法,不知道能不能做select * from (list)做个临时表直接join,就省得建
: 表了。

w**z
发帖数: 8232
16
写个stored procedure

【在 g*****g 的大作中提到】
: 这倒是个办法,不知道能不能做select * from (list)做个临时表直接join,就省得建
: 表了。

r***y
发帖数: 4379
17
re
SP

【在 w**z 的大作中提到】
: 写个stored procedure
n*****t
发帖数: 22014
18
数据量小怎么瞎搞都无所谓,量大的话无聊 union 还是 sp 效率都太差,正确的做法
肯定是用 temp memory table 来 join

【在 w**z 的大作中提到】
: 写个stored procedure
h**********c
发帖数: 4120
19
select * from tablename sort by name
Dbase III learned twenty years ago.
n*****t
发帖数: 22014
20
题目没看清

【在 h**********c 的大作中提到】
: select * from tablename sort by name
: Dbase III learned twenty years ago.

相关主题
ask a Javascript questionone more interview question
C++ interview questions help有点挠头
nnd,内存管理出问题问个char * 的问题
进入Programming版参与讨论
w**z
发帖数: 8232
21
sp 和memory table 有矛盾吗?

【在 n*****t 的大作中提到】
: 数据量小怎么瞎搞都无所谓,量大的话无聊 union 还是 sp 效率都太差,正确的做法
: 肯定是用 temp memory table 来 join

n*****t
发帖数: 22014
22
SP 没有普通的 programming language 灵活,比如这个例子,你首先要把 input 都
insert into temp table,用 PHP 之类可以先组一个 values,一个 query 搞定了,
用 SP 基本只能一条条 insert 吧?

【在 w**z 的大作中提到】
: sp 和memory table 有矛盾吗?
g*****g
发帖数: 34805
23
我老人家就是想偷个懒,写个程序这个没有难度的。最后还是建个临时表, join一下完
了。
1 (共1页)
进入Programming版参与讨论
相关主题
有点挠头问个hash table问题
问个char * 的问题问个设计问题
最近开始接触Objetive C,发现多年的愿望实现了问个socket编程中select()的问题。
同一个SQLserver表格,data space却不同 (转载)Anybody help me on these questions?
问一个SQLPerl/MySQL下fetchrow出错
问个小问题继续吐槽scala
应该用什么方式开发UI,即前端基于浏览器+后端web service的开发?A question about page table
问个SQL的问题ask a Javascript question
相关话题的讨论汇总
话题: select话题: table话题: name话题: name2话题: sp