解决方案 »
- 存储过程不知道出错在哪?
- 如果通过临时表获取存储过程返回的多个结果集的数据
- SQL server 中的游标是什么?
- 高分相送,一个很经典的SQL语句,是高手就进来讨论下!
- mdf文件的大小与数据量比例相差太远,不知是什么原因?请高手指点
- 关于数据库的的插入问题
- 怎么实现同步的实时存储和查询
- SQL SERVER2000的数据库复制问题,大哥们帮帮忙啊。搞了好几天了
- 我用多个select语句取出一系列字段,如何语句实现将这些字段分别存入.xls文件,表头用我定义的别名!急,在线等待!
- 介绍一下xml与sql server2000的应用
- sql2008行转列方法
- 急急急!SQL导出Excel表的问题!~
供参考!
-- Author :DBA_HuangZJ(發糞塗牆)
-- Date :2014-07-08 07:53:44
-- Version:
-- Microsoft SQL Server 2012 - 11.0.5058.0 (X64)
-- May 14 2014 18:34:29
-- Copyright (c) Microsoft Corporation
-- Enterprise Edition: Core-based Licensing (64-bit) on Windows NT 6.3 <X64> (Build 9600: ) (Hypervisor)
--
----------------------------------------------------------------
--> 测试数据:[huang]
if object_id('[huang]') is not null drop table [huang]
go
create table [huang]([test] varchar(45))
insert [huang]
select 'testa----test1----劳而无----fadfad----dfad' union all
select 'testb----test2----fadfa----dfasdfa----dfad' union all
select 'testc----test3----dfadfa----fasdfasd----dfadf'
--------------开始查询--------------------------
IF NOT OBJECT_ID('f_GetStr') IS NULL
DROP FUNCTION [f_GetStr]
GO
--分段截取函数(邹建)
CREATE FUNCTION dbo.f_GetStr(
@s varchar(8000), --包含多个数据项的字符串
@pos int, --要获取的数据项的位置
@split varchar(10) --数据分隔符
)RETURNS varchar(1000)
AS
BEGIN
IF @s IS NULL RETURN(NULL)
DECLARE @splitlen int
SELECT @splitlen=LEN(@split+'a')-2
WHILE @pos>1 AND CHARINDEX(@split,@s+@split)>0
SELECT @pos=@pos-1,
@s=STUFF(@s,1,CHARINDEX(@split,@s+@split)+@splitlen,'')
RETURN(ISNULL(LEFT(@s,CHARINDEX(@split,@s+@split)-1),''))
END
GOSELECT
dbo.f_GetStr(test,1,'----') A,
dbo.f_GetStr(test,2,'----') B,
dbo.f_GetStr(test,3,'----') C,
dbo.f_GetStr(test,4,'----') D,
dbo.f_GetStr(test,5,'----') E
FROM huang----------------结果----------------------------
/*
A B C D E
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
testa test1 劳而无 fadfad dfad
testb test2 fadfa dfasdfa dfad
testc test3 dfadfa fasdfasd dfadf*/