Python官方文档给出的解释是
id(object)
Return the “identity” of an object This is an integer (or long integer) which is guaranteed to be unique and constant for this object during its lifetime Two objects with non-overlapping lifetimes may have the same id() value
CPython implementation detail: This is the address of the object in memory
由此可以看出:
1、id(object)返回的是对象的“身份z号”,唯一且不变,但在不重合的生命周期里,可能会出现相同的id值。此处所说的对象应该特指复合类型的对象(如类、list等),对于字符串、整数等类型,变量的id是随值的改变而改变的。
2、一个对象的id值在CPython解释器里就代表它在内存中的地址。(CPython解释器:)
1
234
5678910111213141516
class
Obj():
def
__init__(self
,arg):
self
x
=
arg
if
__name__
=
=
__main__
obj
=
Obj(1)
id
(obj)
#32754432
objx
bson的话
比如,我的是MongoDB查询出的id
导入bson模块
for id in cursor:
id = idget('_id',"空")
#此时的id类型为bsonobjectidObjectId
id = id__str__()
#此时的id类型为str
json的话
导入json模块
JSON的dumps()函数可以将python的各种数据类型转换为字符串,loads()函数可以将相应的字符串转换回python变量
--1 表的identity字段可以在[sysidentity_columns]找到
--比如某张表table_example的自增字段可以这样找
select from sysidentity_columns where [object_id]= OBJECT_ID('table_example')
--2 有没有是判断,这里等价于是否存在自增字段,可以这样写:
if exists(select from sysidentity_columns where [object_id]= OBJECT_ID('table_example'))
begin
print 'Yes'
end
else
begin
print 'No'
end
如果对ArcSDE或者是数据库比较熟悉的话,可能会将要素类(数据库层次就是表),表对象的序列找出来,其实ObjectID走的也是一个序列,然后获得nextValue即可,这种方式是不严谨的。
下一个可用对象
ID
不一定是最后所插入对象
ID
之后的下一个顺序编号。某些客户端应用程序的对象
ID
会进行批量分配,因此下一个可用对象
ID
的编号可能比最后使用的对象
ID
大许多。同样,批中任何未使用的对象
ID
会返回可用值池中,这意味着下一个可用对象
ID
值可能实际上小于最后插入的对象
ID
值。
使用
sdeversion_user_ddl
包中的
next_row_id
函数为对象
ID
生成新的唯一值。
next_row_id
函数使用两个参数:所有者和注册
ID。所有者是拥有该表的用户的名称。注册
ID
来自
TABLE_REGISTRY
ArcSDE
系统表。利用表的所有者名称和注册
ID,可创建
SQL
语句来填充对象
ID
列。
*** 作步骤:1:连接到Sqlplus
2:找到 *** 作对象要素类对应的注册ID
SELECT
registration_id
FROM
sdetable_registry
WHERE
table_name
=
'STREAMS'
and
owner
=
'ENG2';
REGISTRATION_ID
131
3:进行 *** 作
int getTableId ( SqlConnection cn, string table )
{
try
{
cnOpen ( );
SqlCommand command = cnCreateCommand ( );
commandCommandText = "SELECT COUNT(1) FROM sysobjects WHERE [name] = @Name";
commandParametersAddWithValue ( "@Name", table );
int rowCount = ( int ) commandExecuteScalar ( );
if ( rowCount == 0 )
{
return -1;
}
else
{
commandCommandText = StringFormat ( "SELECT COUNT(1) FROM {0}", table );
commandParametersClear ( );
rowCount = ( int ) commandExecuteScalar ( );
return rowCount;
}
}
catch ( SqlException ex )
{
throw ex;
}
finally
{
cnClose ( );
}
}
Excel中怎样用公式实现单列数据按一定规律转换成多行多列,一列转多行 B1单元格写入公式
=OFFSET($A$1,ROW(A1)5+COLUMN(A1)-6,)
或
=INDEX($A:$A,COLUMN(A1)+ROW(A1)5-5)
再或
=INDIRECT("A"&COLUMN(A1)+ROW(A1)5-5)
右拉再下拉复制公式
excel中两列数据转换成多行多列的宏代码?
你的数据在AB列
我在速度方面优化了一下,试试能否满足需要
Sub Macro1()
'
' Macro1 Macro
'
'
Dim I As Integer, zROW As Integer, zR2 As Integer
Dim zDATA()
zROW = Range("A1")End(xlDown)Row
ReDim zDATA(zROW, 2)
zDATA = Range("A1:B" & zROW)
zR2 = 0
ApplicationScreenUpdating = False
For I = 1 To zROW
If Columns("C:C")Find(What:=zDATA(I, 1)) Is Nothing Then
zR2 = zR2 + 1
Cells(zR2, 3) = zDATA(I, 1)
Cells(zR2, 4) = zDATA(I, 2)
Else
Columns("C:C")Find(What:=zDATA(I, 1))End(xlToRight)Next = zDATA(I, 2)
End If
Next
ApplicationScreenUpdating = True
End Sub
excel2007怎么将多行多列数据转为单列数据
:jingyanbaidu/article/aa6a2c14f0e8100d4c19c424
sql 将多列数据转换成多行显示
select a as d from t1
union all
select b from t1
union all
select c from t1
通用只可用动态
declare @s nvarchar(4000)
select @s=isnull(@s+'union all select ','select ')+Name+' as D from 表名' from syscolumns where ID=object_id('表名')
exec(@s)
EXCEL中多行多列数据,如何整合分解成多行单列或固定列数格式。
可用公式解决,但较多公式,稍等
excel无规律提取多行多列数据
你的意思是 想 随机提取 一定行数的 数据?
假设你的数据 在 A B C D E 那么在 F列 输入:=rand() 然后向下复制 或者双击 单元格右下角的小黑十字 填满整列……
然后 你在 G1 输入
=INDEX(A:A,MATCH(SMALL($F:$F,ROW(A1)),$F:$F,0)) 向右复制5 列 然后再向下 复制 5行……
这样 每按一次 F9 就得到一组新的数据……也可以一直复制下去 这样 数据就是随机排列了的了 你可以 随意弄5行为一组……
excel VB 单列数据转多行
如果有vba基础的话 估计你看了这句就能懂了,如果没有基础的话还是先去学学VBA吧。
for i = 1 to 65535 '单列内容的行号 cells(i 3 , i % 3) = cells(1 , i) '将单列内容的行号转换成3列内容的序号, i 3整除,i % 3求余数。
EXCEL函数有效性 多行多列数据引用
我最近也在研究这个怎么做,先教你个笨方法吧,就是在需要自动输入那几栏全部做VLOOKUP函数,希望能帮到你吧!
excel中,怎样用函数来实现B列数据取自A列数据的后三位?
=right(A1,3)
将公式向下复制即可
如果是sql
server
就可用个自定义函数
----创建查找函数
IF
object_id(
'fn_Find
')
is
not
null
drop
function
fn_Find
GO
CREATE
FUNCTION
fn_Find
(
@SourceString
varchar(100),
--字符串
@seq
int,
--序号
@Seperator
varchar(10)
--分隔符
)
returns
varchar(100)
as
BEGIN
declare
@i
int
--分隔符出现的位置
declare
@j
int
--分隔符出现的序号
set
@SourceString
=
@Seperator
+
@SourceString
+
@Seperator
--对字符串两端进行处理
set
@j
=
0
set
@i
=
charindex(@Seperator,@SourceString)
while
@i
>
0
and
@j
<
@seq
begin
set
@SourceString
=
stuff(@SourceString,1,@i,
'
')
set
@i
=
charindex(@Seperator,@SourceString)
set
@j
=
@j
+
1
end
return
case
when
charindex(@Seperator,@SourceString)
>
0
then
substring(@SourceString,1,charindex(@Seperator,@SourceString)
-
1)
else
NULL
end
END
GO
----测试
declare
@str
varchar(100)
declare
@Seperator
varchar(10)
set
@str
=
'a;bc;de;fg;hij;k
'
set
@Seperator
=
';
'
select
dbofn_Find(@str,1,@Seperator)
select
dbofn_Find(@str,2,@Seperator)
select
dbofn_Find(@str,3,@Seperator)
select
dbofn_Find(@str,4,@Seperator)
select
dbofn_Find(@str,5,@Seperator)
select
dbofn_Find(@str,6,@Seperator)
select
dbofn_Find(@str,7,@Seperator)
--drop
function
fn_Find
microsoft sql server management studio中展开对应表下面的列信息不就可以看到列的详细信息了么?当然这是可以的,但这里我们主要讲的时如何利用sql语句来查询指定表的列信息。
利用sql语句来查询列信息,就是要用到系统视图syscolumns,这个视图记录了数据库中所有表,视图,表值函数等的所有列信息。我们可以利用语句select from syscolumns来查看这个视图返回的信息。
syscolumns返回的列比较多,大部分情况下很多列的信息我们可能用不到,下面我们只解释一下比较常用的列的信息。
1、object_id--这个列是比较重要的,它是返回当前列所属表的ID。利用它,我们就可以查询指定表的所有列信息,比如下面的sql语句是查询表table1的所有列信息。
select from syscolumns where object_id=object_id('table1')
2、name--该列的列名。
3、column_id--该列在数据库中的ID,注意,数据库中任何对象的ID都是唯一的。
4、system_type_id--该列的类型的ID,和下面max_length,precision,scale三列一起可以来举个示例。
5、max_length--该列的最大长度
6、precisionp--如果这列是数值列,那么这是该列的精度,否则就是0
7、scale--如果这列是数值列,那么这就是列的小数位数,否则就是0
system_type_id,max_length,precision,scale四列结合系统视图systypes一起我们来举个示例。
如果我们要查询表table1的所有列,及列的类型,列的精度,列的小数位数,sql语句如下:
select aname,bname,amax_length,aprecision,ascale
from syscolumns a left join systypes b on auser_type_id=buser_type_id
where aobject_id=object_id('table1')
8、is_nullable--该列是否可以为null
9、is_identity--该列是否是标识列
10、is_computed--该列是否是计算列。利用该列,我们也就可以查询某个表的所有计算列了,比如我们要查询表table1中的所有计算列,sql语句如下:
select from syscolumns where object_id=object_id('table1') and is_computed=1
syscolumns视图中常用的列就是这10列了,其它列的信息可以到SQLServer 2005联机丛书中查询。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)