34,588
社区成员
发帖
与我相关
我的任务
分享
CREATE TABLE OA_Group(ZWBH NVARCHAR(4000), QXLB NVARCHAR(4000))
CREATE TABLE RS_YGB(grouplist NVARCHAR(4000) , YGBH NVARCHAR(4000))
go
insert into OA_Group
select '2','0654,0655,0656,0657,0658,0659,0660,0661,0662'
union all
select '3','0202,0203,0204,0206,0209,0210,0211,0407,0423,0425'
insert into RS_YGB
select '2,3,1273,1275,1288,1291,1309,1328,1332,1354','638'
union all
SELECT '3,1289,1273,1308,1316,1328,1338,1307,1388,1302,1333','128541'
go
select *
from OA_Group t1
left join RS_YGB t2 on CHARINDEX(','+T1.ZWBH+',',','+T2.grouplist+',')>0
go
drop TABLE OA_Group
drop TABLE RS_YGB
----------------------------------------------------------------
-- Author :DBA_Huangzj(發糞塗牆)
-- Date :2013-02-22 17:00:18
-- Version:
-- Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (X64)
-- Jun 17 2011 00:54:03
-- Copyright (c) Microsoft Corporation
-- Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1, v.721)
--
----------------------------------------------------------------
--> 测试数据:[huang]
if object_id('[huang]') is not null drop table [huang]
go
create table [huang]([QXLB] varchar(44))
insert [huang]
select '0654,0655,0656,0657,0658,0659,0660,0661,0662'
--------------开始查询--------------------------
SELECT SUBSTRING([QXLB], number, CHARINDEX(',', [QXLB] + ',', number) - number) AS [QXLB]
FROM huang a ,
master..spt_values
WHERE number >= 1
AND number < LEN([QXLB])
AND type = 'p'
AND SUBSTRING(',' + [QXLB], number, 1) = ','
----------------结果----------------------------
/*
QXLB
--------------------------------------------
0654
0655
0656
0657
0658
0659
0660
0661
0662
*/