首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

字符串分割 查询有关问题

2013-01-23 
字符串分割 查询问题[解决办法]李四怎么变张三了select id,李四 as name from table where charindex(,

字符串分割 查询问题

[解决办法]
李四怎么变张三了

select id,'李四' as name from table where charindex(',李四,',','+Name+',')>0

[解决办法]
USE test
GO

-->生成表table1

if object_id('table1') is not null 
drop table table1
Go
Create table table1([id] smallint,[Name] nvarchar(9))
Insert into table1
Select 1,N'张三,李四,王五,'
Union all Select 2,N'李四,'
Union all Select 3,N'李四,张三,'


DECLARE @Name NVARCHAR(50),@sql NVARCHAR(MAX)
SET @Name=N'李四'

SELECT @sql=ISNULL(@sql+' Union Select ','Select ')+LTRIM(id)+' As id,N'''+REPLACE(Name,',',''' As Name Union all Select '+LTRIM(id)+' As id,N''')+''' As Name' FROM table1
EXEC ('Select * from ('+@sql+') As t Where t.Name='''+@Name+'''')

/*
id          Name
----------- ----
1           李四
2           李四
3           李四
*/

[解决办法]

SELECT id,@Name AS Name FROM table1 WHERE CHARINDEX(@Name,Name)>0

[解决办法]

create table tyz(id int ,tname varchar(20))

insert tyz select 1, N'张三,李四,王五'
insert tyz select 2, N'李四'
insert tyz select 3, N'李四,张三'
insert tyz select 4, N'张三'



declare @name varchar(10)
set @name='李四'
select id,@name as name from tyz where substring(tname,charindex(@name,tname),len(@name))=@name

热点排行