create table MyGroups(SN int, UserName varchar(10), Groups varchar(10))
insert MyGroups select 109, '? 三 ', ' 甲 ?'
union all select 110, ' 李四 ', ' 甲 ?'
union all select 110, ' 李四 ', ' 乙 ?'
union all select 110, ' 李四 ', ' 丙 ?'
union all select 331, ' 王五 ', ' 甲 ?'
union all select 331, ' 王五 ', ' 丙 ?'
union all select 332, '? 六 ', ' 丙 ?'
union all select 332, '? 六 ', ' 丁 ?'
union all select 332, '? 六 ', ' 戊 ?'
union all select 333, '? 七 ', ' 甲 ?'
union all select 333, '? 七 ', ' 乙 ?'
union all select 333, '? 七 ', ' 戊 ?'
insert MyGroups select 109, '? 三 ', ' 甲 ?'
union all select 110, ' 李四 ', ' 甲 ?'
union all select 110, ' 李四 ', ' 乙 ?'
union all select 110, ' 李四 ', ' 丙 ?'
union all select 331, ' 王五 ', ' 甲 ?'
union all select 331, ' 王五 ', ' 丙 ?'
union all select 332, '? 六 ', ' 丙 ?'
union all select 332, '? 六 ', ' 丁 ?'
union all select 332, '? 六 ', ' 戊 ?'
union all select 333, '? 七 ', ' 甲 ?'
union all select 333, '? 七 ', ' 乙 ?'
union all select 333, '? 七 ', ' 戊 ?'
create function fun(@SN int)
returns varchar(1000)
as
begin
declare @re varchar(1000)
set @re=''
select @re=@re+','+Groups from MyGroups where SN=@SN
return stuff(@re, 1, 1, '')returns varchar(1000)
as
begin
declare @re varchar(1000)
set @re=''
select @re=@re+','+Groups from MyGroups where SN=@SN
end
select SN, UserName, Groups=dbo.fun(SN)
from MyGroups
group by SN, UserName
select * from dbo.tele01
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[f_convert]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[f_convert]
GO
drop function [dbo].[f_convert]
GO
/*--
全角
/
半角
??
???
明
全角字符从的 unicode?? 从 65281~65374
半角字符从的 unicode?? 从 33~126
空格比 ? 特殊 , 全角 ? 12288, 半角 ? 32
而且除空格外 , 全角 / 半角按 unicode?? 排序在 ? 序上是 ?? 的
所以可以直接通 ? 用 +- 法来 ? 理非空格数据 ,? 空格 ? 独 ? 理
like 的 ? 候 , 指定排序 ?? COLLATE Latin1_General_BIN
是保 ? 字符 ? 序按 unicode?? 排序
( 此函数部分思路参考了 CSDN 上大力的 ?? 函数 )
--? 建 2005.01( 引用 ? 保留此信息 )--*/
全角字符从的 unicode?? 从 65281~65374
半角字符从的 unicode?? 从 33~126
空格比 ? 特殊 , 全角 ? 12288, 半角 ? 32
而且除空格外 , 全角 / 半角按 unicode?? 排序在 ? 序上是 ?? 的
所以可以直接通 ? 用 +- 法来 ? 理非空格数据 ,? 空格 ? 独 ? 理
like 的 ? 候 , 指定排序 ?? COLLATE Latin1_General_BIN
是保 ? 字符 ? 序按 unicode?? 排序
( 此函数部分思路参考了 CSDN 上大力的 ?? 函数 )
--? 建 2005.01( 引用 ? 保留此信息 )--*/
/*--?
用示例
declare @s1 varchar(8000)select @s1=' 中 2 - 3456 a 78STUV ab n中国opwxyz '
select dbo.f_convert(@s1,0),dbo.f_convert(@s1,1)
--*/
CREATE FUNCTION f_Convert(
@str NVARCHAR(4000), -- 要 ?? 的字符串
@flag bit --??? 志 ,0?? 成半角 ,1?? 成全角
)
RETURNS nvarchar(4000)
AS
BEGIN
DECLARE @pat nvarchar(8),@step int,@i int,@spc int
IF @flag=0
SELECT @pat=N'%[ ! - ~ ]%',@step=-65248,
@str=REPLACE(@str,N' ',N' ')
ELSE
SELECT @pat=N'%[!-~]%',@step=65248,
@str=REPLACE(@str,N' ',N' ')
SET @i=PATINDEX(@pat COLLATE LATIN1_GENERAL_BIN,@str)
WHILE @i>0
SELECT @str=REPLACE(@str,
SUBSTRING(@str,@i,1),
NCHAR(UNICODE(SUBSTRING(@str,@i,1))+@step))
,@i=PATINDEX(@pat COLLATE LATIN1_GENERAL_BIN,@str)
RETURN(@str)
END
GO
SELECT @pat=N'%[!-~]%',@step=65248,
@str=REPLACE(@str,N' ',N' ')
SET @i=PATINDEX(@pat COLLATE LATIN1_GENERAL_BIN,@str)
WHILE @i>0
SELECT @str=REPLACE(@str,
SUBSTRING(@str,@i,1),
NCHAR(UNICODE(SUBSTRING(@str,@i,1))+@step))
,@i=PATINDEX(@pat COLLATE LATIN1_GENERAL_BIN,@str)
RETURN(@str)
END
GO
declare @s1 varchar(8000)
select @s1=' 中 2 - 3456 a 78STUV ab n中国opwxyz '
select dbo.f_convert(@s1,0),dbo.f_convert(@s1,1)
select @s1=' 中 2 - 3456 a 78STUV ab n中国opwxyz '
select dbo.f_convert(@s1,0),dbo.f_convert(@s1,1)
use ceshi
select * from staff
--exec master..xp_cmdshell 'copy //172.15.103.2/aa/sa1.txt //172.15.103.5/bb'
declare @ss varchar(13)set @ss='ss ss ss'
select replace(@ss,' ','')