关于master..spt_value系统表的应用小结--来源涛声依旧

机构:上海内威培训 时间:2016-01-22 点击:578

  /**

  最近在CSDN上见到很多关于master..spt_values的应用,感觉这个东西太好用了,

  所以搜索了很多关于这方面的应用。

  在此贴上自己的总结结果,希望各路大神批评指教,也希望大家继续把这方面的应用贴上。

  */

  select number from master..spt_values with(nolock) where type='P'

  /**解释:master..spt_values表的字段值为P的对应number字段值是从0-2047*/

  -----------

  --1.将字符串转换为列显示

  if object_id('tb') is not null drop table tb

  go

  create table tb([编号] varchar(3),[产品] varchar(2),[数量] int,[单价] int,[金额] int,[序列号] varchar(8))

  insert into tb([编号],[产品],[数量],[单价],[金额],[序列号])

  select '001','AA',3,5,15,'12,13,14' union all

  select '002','BB',8,9,13,'22,23,24'

  go

  select [编号],[产品],[数量],[单价],[金额]

  ,substring([序列号],b.number,charindex(',',[序列号]+',',b.number)-b.number) as [序列号]

  from tb a with(nolock),master..spt_values b with(nolock)

  where b.number>=1 and b.number

  and substring(','+[序列号],number,1)=','

  go

  drop table tb

  go

  /**

  编号 产品 数量 单价 金额 序列号

  ---- ---- ----------- ----------- ----------- --------

  001 AA 3 5 15 12

  001 AA 3 5 15 13

  001 AA 3 5 15 14

  002 BB 8 9 13 22

  002 BB 8 9 13 23

  002 BB 8 9 13 24

  */

  ----------

  了解更多关于各种软件方面的知识,请访问上海软件培训学校

 

 

返回顶部