当前位置:Gxlcms > 数据库问题 > SQL 2008依据条件拆分列

SQL 2008依据条件拆分列

时间:2021-07-01 10:21:17 帮助过:20人阅读

   比方:数据库中有省份这么一列数据

   技术分享

   客户要求依据省份分类。河北省一列、北京市一列、天津市一列。剩下的为其它。目标效果例如以下:

   技术分享

   手工编写的SQL语句Version1.0版:

select   
  河北 = PARSENAME(provice,(charindex(‘河北‘,provice))) , 
  北京 = PARSENAME(provice,(charindex(‘北京‘,provice))) , 
  天津 = PARSENAME(provice,(charindex(‘天津‘,provice))) ,
  其它 =(select provice where charindex(‘河北‘,provice) = 0 
						  and charindex(‘北京‘,provice) = 0  
                          and charindex(‘天津‘,provice) = 0)
from a

        运行效果例如以下:

   技术分享
   可用户的须要仅仅是想查询这个人是否在这个省份内,并不想知道详细是这个省的哪个城市。所以用replace函数对SQL语句进行了升级,SQL语句Version2.0版:

select   
  河北 =REPLACE(PARSENAME(provice,(charindex(‘河北‘,provice))),PARSENAME(provice,(charindex(‘河北‘,provice))),‘√‘ ), 
  北京 =REPLACE(PARSENAME(provice,(charindex(‘北京‘,provice))),PARSENAME(provice,(charindex(‘北京‘,provice))),‘√‘ ), 
  天津 =REPLACE(PARSENAME(provice,(charindex(‘天津‘,provice))),PARSENAME(provice,(charindex(‘天津‘,provice))),‘√‘ ), 
  其它 =REPLACE((select provice where charindex(‘河北‘,provice) = 0 
						  and charindex(‘北京‘,provice) = 0  
                          and charindex(‘天津‘,provice) = 0),
                 (select provice where charindex(‘河北‘,provice)= 0 
						  and charindex(‘北京‘,provice) = 0  
                          and charindex(‘天津‘,provice) = 0),
                  ‘√‘)
from a

            运行效果例如以下:

    技术分享
    在解决这个问题过程中,发现网上对此类问题并没有非常好的解决方式,所以在此把自己研究成果拿出来和大家分享下。希望能帮助大家解决开发过程中遇到的问题。

    

SQL 2008依据条件拆分列

标签:parse   sso   研究   目标   分类   sdn   条件   开发   查询   

人气教程排行