您的位置:首页 > 数据库

sqlserver的方法记录总结

2019-06-13 15:39 253 查看

1.sqlserver中一种查父节点id的方法。

    方法不难,其实就是 递归调出所有的父节点,但是把不懂这个原理怎么实现的,看着临时表mt可以用在union all 里本身还是有点懵的,暂时先记录一下这个方法

[code] with mt as
(select t.ST_ID , t.ST_Name , t.ST_PID
from AWeb_SupplyType t where ST_ID =10051
union all
select t.ST_ID , t.ST_Name , t.ST_PID  from AWeb_SupplyType t , mt
where t.ST_ID = mt.ST_PID )
select ST_ID , ST_Name , ST_PID from mt where ST_PID=0

2.sqlserver合并多条数据

       FOR XML PATH   具体来讲是将查询结果集以XML形式

      基本用法是输出时行节点可由row变为MyHobby ,列名由字段名变为别名

      SELECT CountryCode as 'Code', ContientType as 'Type' FROM PR_ServerCountry FOR XML PATH ('MyHobby')

    将其用于表中,可将xml的格式转换为列表格式path(")就是讲行节点row置为''

    select stuff((select ','+CountryCode from PR_ServerCountry for xml path('')),1,1,'') as name

3.第一条语句是等同于in的方法,主要是因为在C#中用@countryCode传输值得时候,将'hk','pk'的数值当做了字符串来处理,

select * from PR_ServerCountry where charindex(rtrim(CountryCode), 'pk,hk')>0

select * from PR_ServerCountry where CountryCode in ('hk','pk')

 

4.排序中为null的

此处的排序要记住是要进行两次,第一次改变值,第二次才是排序(?)

select UserID,UserNames
from UserInfo
order by case when Id is null then 1 else 0 end asc,Id asc
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐