Ⅰ sql使用insert插入多条数据时表中的数据排序和我插入时的排序不同,看下图表中的数据和我查询语句的顺序
这很正常,因为数据表某些设置了索引,在这种情况下,系统会自动按相应数据表设置的索引的排序规则排序数据行,原始的插入顺序就可能会被忽略(插入顺序与排序规则如果不一致的话)。就提问中的图片来看,PName应该设置了索引并规定了升序排序。
如果要求数据表按插入时的数据行的顺序显示数据,除了自增ID字段外其他字段不得设置索引。
其实数据表中显示的排序并不重要,只是方便查看数据而已。如果需要的话,我们几乎可以任意的排序规则在查询里运用ORDER BY子句排序数据行,非常方便的,没有必要在意数据表里的排序外观。
Ⅱ SQL可以按照字段的顺序插入么
SQL 语句就是一个字符串,你可以随便拼接啊!你的意思是不是传来两个参数第一个是字段名,第一个是值啊?这样很好办,你定义一个String sql ="UPDATE price set "+ 参数一+"="+参数二就OK了,sql语句是个字符串你可以随便拼接,只要符合要求就行!
Ⅲ sql 顺序插入字符型序号
oracle代码:
declare v_i number(10);
begin
v_i := 1;
while v_i <= 1001 loop
insert into bar (barcode) select '00'||to_char(v_i+999) from al;
v_i := v_i + 1;
end loop;
end;
/
补充:
你是什么数据库呀
sybase,sql server:
declare @v_i int
begin
select @v_i = 1
while @v_i <= 1001
begin
insert into bar (barcode) select '00'+convert(varchar,@v_i+999)
select @v_i = @v_i + 1
end
end
go
Ⅳ sql 按输入顺序输出 并能在任意位置插入
你是什么数据库呀?
你可以通过 设置一个 自动递增列 的机制来处理。
我看了看你的描述,想法是设置一个序号列做主键,其余用触发器完成。
那我估计你的数据库, 可能是 Oracle ,
下面是 Oracle 的 序列号 + 触发器的例子代码
首先是创建序列号
SQL>CREATESEQUENCEtest_sequence2
2incrementby1--每次递增1
3startwith1--从1开始
4nomaxvalue--没有最大值
5minvalue1--最小值=1
6NOCYCLE;--不循环
Sequencecreated.
下面是创建表 和 触发器
SQL>CREATETABLEtest_create_tab2(
2idINT,
3valVARCHAR(10),
4PRIMARYKEY(id)
5);
Tablecreated.
SQL>
2BEFOREINSERTONtest_create_tab2
3FOREACHROW
4BEGIN
5SELECTtest_sequence2.nextvalINTO:new.idFROMal;
6END;
7/
Triggercreated.
下面是插入数据的模拟操作。
SQL>INSERTINTOtest_create_tab2(val)VALUES('NOid');
1rowcreated.
SQL>INSERTINTOtest_create_tab2(id,val)VALUES(1,'idnouse');
1rowcreated.
SQL>SELECT*FROMtest_create_tab2;
IDVAL
------------------------------
1NOid
2idnouse
Ⅳ SQL按顺序插入数字
insertintofoo(xxx,yyy)
select(selectCOUNT(*)fromfoo)+1,zzzfrombar
Ⅵ SQL添加一个列 然后顺序赋值
还有一种简单的方式,就是你先增加一列,然后在EXcel 里拉一下 你要多少个 ,然后复制到数据库中 ,oracle 就可以这样干的 ,用plsql
Ⅶ SQL2005 数据库 插入数据的顺序如何按照时间顺序
create table simp
(
id int,
time datetime --SQL里自带时间格式
)
insert into simp(id,time) values (100,'2005-3-23 11:23:25')
go
select * from simp
drop table simp
决定输入的日期如何解释的是set dateformat设置
SET DATEFORMAT
设置用于输入 datetime 或 smalldatetime 数据的日期部分(月/日/年)的顺序。
语法
SET DATEFORMAT { format | @format_var }
参数
format | @format_var
是日期部分的顺序。可以是 Unicode 或转换为 Unicode 的 DBCS。有效参数包括 mdy、dmy、ymd、ydm、myd 和 dym。美国英语默认值是 mdy。
注释
该设置仅用在将字符串转换为日期值时的解释中。它对日期值的显示没有影响。
SET DATEFORMAT 的设置是在执行或运行时设置,而不是在分析时设置。
权限
SET DATEFORMAT 权限默认授予所有用户。
示例
下例使用不同的日期格式处理不同格式的日期字符串。
SET DATEFORMAT mdy
GO
DECLARE @datevar datetime
SET @datevar = '12/31/98'
SELECT @datevar
GO
SET DATEFORMAT ydm
GO
DECLARE @datevar datetime
SET @datevar = '98/31/12'
SELECT @datevar
GO
SET DATEFORMAT ymd
GO
DECLARE @datevar datetime
SET @datevar = '98/12/31'
SELECT @datevar
GO
Ⅷ 如何用SQL语言顺序插入数字
我这边sql server没有出现重复行号的问题,估计sql server是select 一条 插一条 重新select一条 再插一条。你那边是先全部select 再全部插入。
Ⅸ 请问sql server中如何把一张表的一列数据按顺序插入到另一张表的列中,两边的顺序需一致
楼上的回答基本正确,简单来写就是:
insert into 表2(列名) Select 列名 From 表1;
但是你的问题问的不对,"两边的顺序需一致"这说明你数据库理论没学过,数据在表里存储是以“集合”方式进行存储的,即没有顺序。这就是说存储是不按顺序的(DBMS负责),但显示可以有顺序。
即
Select * From 表2 order by 列名 descend;\\例如降序
Ⅹ sql server中,怎么对数据按照插入的先后次序排序
主键如果是自增的,直接按主键来排序就行,如果不是。那你就得建立一个SORT列专门为其排序用,很灵活,你可以存拼音首字母按其排序,也可以存先后顺序。