当前位置:首页 » 编程语言 » sql国家省市树结构
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql国家省市树结构

发布时间: 2022-11-06 11:18:20

1. 关于sql查询树结构数据的语句

方法1:
是否可以有代表层次的字段,若有,直接根据层次字段查询;
方法2:
是否存在以下假设:
非父级的dept_uid的 不可能 在 parent_uid 中出现。
如果假设成立,在查出的所有dept_uid中去掉,所有在在 parent_uid 中出现id,
剩下的就是你要的了。

2. 数据库设计 国家表 国家编号:char(3) 国名:vARCHAR(50) 省市表 省市编号:char(3) 省市名:varchar(50)

(1)要求查找”中国河北省“的所有县名。该如何查找,写出SQL语句
SELECT
县郡表.县郡名
FROM
国家表 JOIN 省市表 ON ( 国家表.国家编号 = 省市表.国家编号 )
JOIN 县郡表 ON ( 县郡表.省市编号 = 省市表.省市编号 )
WHERE
国家表.国名 = '中国' AND 省市表.省市名 = '河北'

(2)在功能不变的前提下,将上述三表合并成一个表,该如何设计?在你的设计中,实现上述查找的SQL语句该如何写

CREATE TABLE 国省县 (
国名:vARCHAR(50),
省市名:varchar(50),
县郡名:VarChar(50)
)

SELECT
县郡名
FROM
国省县
WHERE
国名 = '中国' AND 省市名 = '河北'

3. SQL里树状结构的表,找树叶节点。

找树叶简单啊

SELECT
*
FROM
表 main
WHERE
NOT EXISTS (
SELECT * FROM 表 sub WHERE main.ID = sub.ParentID
)

也就是对于 表的 每一行, 不存在有其他行的数据, ParentID 等于 当前行的 ID

4. sql组织机构树查询

组织等级是四层,应该显示四列才完整

createtablestat(codevarchar(10),parentvarchar2(10),slevelvarchar(10));
INSERTINTOSTATVALUES('中国','0','国家');
INSERTINTOSTATVALUES('浙江省','中国','省');
INSERTINTOSTATVALUES('江苏省','中国','省');
INSERTINTOSTATVALUES('杭州市','浙江省','市');
INSERTINTOSTATVALUES('南京市','江苏省','市');
INSERTINTOSTATVALUES('西湖区','杭州市','县/区');
INSERTINTOSTATVALUES('玄武区','南京市','县/区');
SELECTA.PARENT,A.CODE,B.CODE,C.CODE
FROMSTATA,STATB,STATC
WHEREA.CODE=B.PARENT
ANDB.CODE=C.PARENT
ANDA.PARENT='中国';
PARENTCODECODECODE
----------------------------------------
中国浙江省杭州市西湖区
中国江苏省南京市玄武区

5. sql 查询树型结构

select parent,child from test where parent in(select child from test where parent='a')
是这样的么??不晓得对不对.

6. SQL更新树结构(计算产品标准工时)

你的意思是父产品的工时由自身和子产品的工时共同决定吗?
如果一定要在sql里操作了吧,那就写个触发器吧。在子产品被update时,根据新数据去更新父产品

7. sql查询树结构

如果你用SQL Server 2K5,那你有福了。因为可以用CTE(公用表表达式)来做。

这是MSDN的一个例子,你要的根据这个修改吧。
USE AdventureWorks;
GO
WITH DirectReports(Name, Title, EmployeeID, EmployeeLevel, Sort)
AS (SELECT CONVERT(varchar(255), c.FirstName + ' ' + c.LastName),
e.Title,
e.EmployeeID,
1,
CONVERT(varchar(255), c.FirstName + ' ' + c.LastName)
FROM HumanResources.Employee AS e
JOIN Person.Contact AS c ON e.ContactID = c.ContactID
WHERE e.ManagerID IS NULL
UNION ALL
SELECT CONVERT(varchar(255), REPLICATE ('| ' , EmployeeLevel) +
c.FirstName + ' ' + c.LastName),
e.Title,
e.EmployeeID,
EmployeeLevel + 1,
CONVERT (varchar(255), RTRIM(Sort) + '| ' + FirstName + ' ' +
LastName)
FROM HumanResources.Employee as e
JOIN Person.Contact AS c ON e.ContactID = c.ContactID
JOIN DirectReports AS d ON e.ManagerID = d.EmployeeID
)
SELECT EmployeeID, Name, Title, EmployeeLevel
FROM DirectReports
ORDER BY Sort;
GO

8. SQL Server 2000 树状结构

展bom表的话,一般写procere,用递归调用自己查找下阶,直到最后阶

----
这个。。。。比较复杂,我只写过类似展bom的proceudre,oracle的
但是不知道怎么说。。。。。
要用到递归,游标
而且bom层数多的话跑起来速度很慢,不小心还会死循环。。。。

简单来说,就是procere一次展一层,比如把需展的成品A展到半成品B,C
然后把半成品B,C当做成品,重复调用自己展下一层DEF。。。直到到底为止(也可以自己设定展到几层就停)

9. sql里树形结构分组排序

createtableT1(thisvarchar(10),parentvarchar(10))
insertintoT1(this,parent)
values('id1',null)
,('id2',null)
,('id3','id1')
,('id4','id2')
,('id5','id3')
,('id6','id3')
,('id7','id4')
,('id8','id7')

--sqlserver的cte功能
withtree(this,parent,root,depth)as(
selectthis,parent,thisasroot,
unionall
selecta.this,a.parent,b.root,b.depth+1asdepthfromT1a,treebwherea.parent=b.this
)
selectthis,parent,root,depth
fromtree
orderbyroot,depth,this

10. 如何用SQL解决树查询问题,急!!!

oracle中的select语句可以用START WITH...CONNECT BY PRIOR子句实现递归查询,connect by 是结构化查询中用到的,其基本语法是:

select * from tablename start with cond1
connect by prior cond2
where cond3;

简单说来是将一个树状结构存储在一张表里,比如一个表中存在两个字段:
id,parentid。那么通过表示每一条记录的parent是谁,就可以形成一个树状结构。

用上述语法的查询可以取得这棵树的所有记录。

其中COND1是根结点的限定语句,当然可以放宽限定条件,以取得多个根结点,实际就是多棵树。

COND2是连接条件,其中用PRIOR表示上一条记录,比如 CONNECT BY PRIOR ID=PRAENTID就是说上一条记录的ID是本条记录的PRAENTID,即本记录的父亲是上一条记录。

COND3是过滤条件,用于对返回的所有记录进行过滤。