mysql中怎样改变列的顺序

mysql中怎样改变列的顺序,第1张

SQL的要点是中抽象应用程序以避免数据存储格式。你应该总是以你想要检索数据的意愿指定顺序。例如:

SELECT col_name1, col_name2, col_name3 FROM tbl_name

将以col_name1、col_name2、col_name3的顺序返回列,而:

SELECT col_name1, col_name3, col_name2 FROM tbl_name

将以col_name1、col_name3、col_name2的顺序返回列。

在一个应用程序中,你应该决不基于他们的位置使用SELECT * 检索列,因为被返回的列的顺序永远不能保证;对你的数据库的一个简单改变可能导致你的应用程序相当有戏剧性地失败。

不管怎样,如果你想要改变列的顺序,你可以这样做:

以正确的列顺序创建一张新表。

执行INSERT INTO new_table SELECT fields-in-new_table-order FROM old_table.

删除或改名old_table。

ALTER TABLE new_table RENAME old_table。

select * from sysibm.COLUMNS where TABLE_NAME='表名大写' ORDER BY ORDINAL_POSITION

ORDINAL_POSITION就是存储到数据库系统的列顺序,这个好像不能修改,你可以重新表,然后列的顺序和定义时的顺序一样。

请问在SQL里用什么语句改变列的顺序?

即把

col_a,col_b,col_c,col_d

改成

col_b,col_c,col_d,col_a

如果真要改,给你个办法,但我个人不主张这么改,没有任何必要。

--启用系统表更新

USE master

GO

sp_configure 'allow updates', 1

GO

RECONFIGURE WITH OVERRIDE

GO

declare @colid1 smallint,@colid2 smallint

select @colid1 = colid from syscolumns where id = object_id('yourtable') and name = 'filed1'

select @colid2 = colid from syscolumns where id = object_id('yourtable') and name = 'filed2'

update syscolumns set colid = @colid2 where id = object_id('yourtable') and name = 'filed1'

update syscolumns set colid = @colid1 where id = object_id('yourtable') and name = 'filed2'

--执行完毕后,立即禁用系统表更新:

sp_configure 'allow updates', 0

GO

RECONFIGURE WITH OVERRIDE

GO

最简洁的办法

select colB,colA,colC from tableA


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6734584.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-27
下一篇 2023-03-27

发表评论

登录后才能评论

评论列表(0条)

保存