以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  向大家请教一条SQL语句。  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=24090)

--  作者:狐狸爸爸
--  发布时间:2012/9/29 11:53:00
--  向大家请教一条SQL语句。

有一列,值为:

 

1

1.01

1.5

2

3

3

3.4

3.45

4

...

 

希望执行一条SQL语句后,能将此列的值按顺序调整为:

 

1

2

3

4

5

6

7

8

9

10

...

[此贴子已经被作者于2012-9-29 11:54:29编辑过]

--  作者:lihe60
--  发布时间:2012/9/29 12:26:00
--  

没有看明白。


--  作者:飞
--  发布时间:2012/9/29 12:43:00
--  
 --不知道是不是这个意思,创建一个包含整数列的表,把数据放进去
CREATE TABLE TEST(Val REAL)
INSERT INTO TEST (Val) VALUES (1)
INSERT INTO TEST (Val) VALUES (1.01)
INSERT INTO TEST (Val) VALUES (1.5)
INSERT INTO TEST (Val) VALUES (2)
INSERT INTO TEST (Val) VALUES (3)
INSERT INTO TEST (Val) VALUES (3)
INSERT INTO TEST (Val) VALUES (3.4)
INSERT INTO TEST (Val) VALUES (3.45)
INSERT INTO TEST (Val) VALUES (4)

CREATE TABLE TEST1(Val INT)
INSERT TEST1(Val)
(SELECT VAL FROM TEST)

SELECT * FROM TEST1

DROP TABLE TEST1
DROP TABLE TEST
--  作者:狐狸爸爸
--  发布时间:2012/9/29 12:49:00
--  
呵呵,多谢飞,能否不创建表,直接用sql语句更新原列的数据?
--  作者:lihe60
--  发布时间:2012/9/29 12:57:00
--  

提供个思路,先生成一个临时表,把SQL表中的数据按要求加入,再把临时表中的数据加入SQL表。


--  作者:lihe60
--  发布时间:2012/9/29 13:03:00
--  
以下是引用在2012-9-29 12:43:00的发言:
 --不知道是不是这个意思,创建一个包含整数列的表,把数据放进去
CREATE TABLE TEST(Val REAL)
INSERT INTO TEST (Val) VALUES (1)
INSERT INTO TEST (Val) VALUES (1.01)
INSERT INTO TEST (Val) VALUES (1.5)
INSERT INTO TEST (Val) VALUES (2)
INSERT INTO TEST (Val) VALUES (3)
INSERT INTO TEST (Val) VALUES (3)
INSERT INTO TEST (Val) VALUES (3.4)
INSERT INTO TEST (Val) VALUES (3.45)
INSERT INTO TEST (Val) VALUES (4)

CREATE TABLE TEST1(Val INT)
INSERT TEST1(Val)
(SELECT VAL FROM TEST)

SELECT * FROM TEST1

DROP TABLE TEST1
DROP TABLE TEST

关键一点,不能使用列举法。如果有10万,列举起来要死人的。


--  作者:飞
--  发布时间:2012/9/29 13:53:00
--  
 SELECT ROUND(Val,0) FROM TEST ORDER BY ROUND(Val,0)
--  作者:reachtone
--  发布时间:2012/9/29 14:10:00
--  

假如表名为TB,数据列是SJ:

 

SELECT (SELECT COUNT(*) + 1 FROM TB WHERE SJ > t.SJ) AS ID, SJ FROM TB t ORDER BY SJ DESC

 

如果要替换列值,前面只要再加上update等相关的语句就行。


--  作者:狐狸爸爸
--  发布时间:2012/9/29 14:13:00
--  

呵呵,帮我吧update语句也加上。

 

图片点击可在新窗口打开查看


--  作者:reachtone
--  发布时间:2012/9/29 14:22:00
--  


图片点击可在新窗口打开查看此主题相关图片如下:11.jpg
图片点击可在新窗口打开查看

sql语句是通过的,如果想用update直接更新的话,刚试了下,不行。有空再看看,有点事先忙。