A. sql树形层级查询
你好的!
oracle 的start with connect by
别的数据库用cte 递归都能达到你要的效果!
望采纳~
B. sql如何更新数据(用sql语句)
代码如下:
--创建链接服务器
exec sp_addlinkedserver 'ITSV ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 '
exec sp_addlinkedsrvlogin 'ITSV ', 'false ',null, '用户名 ', '密码 '
--查询示例
select * from ITSV.数据库名.dbo.表名
--导入示例
select * into 表 from ITSV.数据库名.dbo.表名
--以后不再使用时删除链接服务器
exec sp_dropserver 'ITSV ', 'droplogins '
--连接远程/局域网数据(openrowset/openquery/opendatasource)
--1、openrowset
--查询示例
select * from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名)
--生成本地表
select * into 表 from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名)
--把本地表导入远程表
insert openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名)
select *from 本地表
--更新本地表
update b
set b.列A=a.列A
from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名)as a inner join 本地表 b
on a.column1=b.column1
--openquery用法需要创建一个连接
--首先创建一个连接创建链接服务器
exec sp_addlinkedserver 'ITSV ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 '
--查询
select *
FROM openquery(ITSV, 'SELECT * FROM 数据库.dbo.表名 ')
--把本地表导入远程表
insert openquery(ITSV, 'SELECT * FROM 数据库.dbo.表名 ')
select * from 本地表
--更新本地表
update b
set b.列B=a.列B
FROM openquery(ITSV, 'SELECT * FROM 数据库.dbo.表名 ') as a
inner join 本地表 b on a.列A=b.列A
--3、opendatasource/openrowset
SELECT *
FROM opendatasource( 'SQLOLEDB ', 'Data Source=ip/ServerName;User ID=登陆名;Password=密码 ' ).test.dbo.roy_ta
C. SQL怎么更新整行数据
update语句基本使用方法是更新一个字段,如果要更新整行,就需要明确指定所有的列来操作,各字段由逗号隔开即可
写法为:
update table set col1=x,col2=y,col2=z where id=123
另注,如果不是要更新所有数据行,一定要指定where条件
D. 在sqlserver中实现树形结构中根、子节点数据的添加、修改
这个很好实现!就是添加和修改操作:
增加节点:首先要获取(在修改页面)或指定(在sql语句中)parentid的值,然后插入数据就可以啊!
修改节点:可以根据menuid,修改节点的menuName或者parentid或者是同时修改它们俩。
有问题请留言!
E. 求一条sql语句,树形结构
最后SQL语句返回的结果是什么?看一下以下语句行不行?
WITHAAS(SELECTpk_compID,Name,pk_fathercompPIDFROMcompany
UNIONALL
SELECTpk_dept,DeptName,pk_compFROMdept),
BAS
(SELECTCAST(NameASVARCHAR(200))Name,PID,IDFROMAWHEREPID=0
UNIONALL
SELECTCAST(B.Name+''+A.NameASVARCHAR(200)),A.PID,A.ID
FROMBJOINAONB.ID=A.PID)
SELECTNameFROMB
F. sql树形查询分级
必须设置好表的parentID,ID第一级设置为0
witht1as(
selecttreelevel=1,parentID,ID,cast(1asvarchar(20))ROWNUMfrom表whereID=0
unionall
selecttreelevel=treelevel+1,t2.parentID,t2.ID,cast(t1.ROWNUM+'.'+cast(row_number()over(orderbyt2.itemid)asvarchar(10))asvarchar(20))ROWNUMfrom表t2joint1ont2.parentID=t1.id
)
select*fromt1orderbyROWNUM
G. sql update 每列递增2
oracle
update table set value = nvl(value,0) + 2;
mssql
update table set value = isNull(value,0) + 2;
H. sql中的数据更新包括哪几种
根据作用不同,分为以下三种:
1、主数据文件。
用来存储数据库的数据和数据库的启动信息。
每个数据库必须有且只有一个主数据文件,其扩展名为.mdf。
实际的主数据文件都有两种名称:操作系统文件名和逻辑文件名(在sql语句中会用到)
2、辅助数据文件
用来存储数据库的数据,可以扩展存储空间。
一个数据库可以有多个辅助数据文件。扩展名为.ndf
3、事务日志文件
用来存放数据库的事务日志。凡是对数据库进行的增、删、改等操作,都会记录在事务日志文件中。
每个数据库至少有一个事务日志文件。扩展名为.ldf
I. 如何用sql语句实现树形的数据库表查询
如果树的层数固定就可以用语句查询,但效率比较低。例如你说的三层:
select id,v2.name+name from t1 inner join
(select id,v1.name+name as name from t1 inner join
(select id,name from t1 where parentid = 0) v1 on t1.parentid = v1.id) v2 on t1.parentid = v2.id
J. sql update 如何更新日期型数据
update [表名]
set [日期型字段] = null
where [条件字段] = 判定条件;如果所有该日期型字段都需要清空,就不加where从句。
更新数据库里日期类型的数据:
1、如果是更新成当前时间的话:
sql:update tablename set timeNew =sysdate;
2、如果是更新成固定的时间或者是固定格式的时间,可以通过TO_DATE语句实现:
sql:update tablename set timeNew =TO_DATE('2015-12-21', 'YYYY-MM-DD');
(10)sql更新树形扩展阅读:
updateSQL的时间变量:
update temp
set dt=CONVERT(DATETIME,'2015-09-17 '+CONVERT(VARCHAR,dt,114))
--dt为字段,类型为datetime
CONVERT(VARCHAR,dt,114) 为获取dt中的时间部分。如“07:50:59.897”
再将其与日期字串连接,之后将整字串转换为datetime类型更新到表里。