SQL Server 完美SPLIT函数
--
SQL Server Split函数
--
Author:zc_0101
--
说明:
--
支持分割符多字节
--
使用方法
--
Select * from DBO.F_SQLSERVER_SPLIT('1203401230105045','0')
--
select * from DBO.F_SQLSERVER_SPLIT('abc1234a12348991234','1234')
--
Select * from DBO.F_SQLSERVER_SPLIT('ABC',',')
CREATE
FUNCTION
F_SQLSERVER_SPLIT(
@Long_str
varchar
(
8000
),
@split_str
varchar
(
100
))
RETURNS
@tmp
TABLE
(
ID
inT
IDENTITY
PRIMARY
KEY
,
short_str
varchar
(
8000
)
)
AS
BEGIN
DECLARE
@long_str_Tmp
varchar
(
8000
),
@short_str
varchar
(
8000
),
@split_str_length
int
SET
@split_str_length
=
LEN
(
@split_str
)
IF
CHARINDEX
(
@split_str
,
@Long_str
)
=
1
SET
@long_str_Tmp
=
SUBSTRING
(
@Long_str
,
@split_str_length
+
1
,
LEN
(
@Long_str
)
-
@split_str_length
)
ELSE
SET
@long_str_Tmp
=
@Long_str
IF
CHARINDEX
(
REVERSE
(
@split_str
),
REVERSE
(
@long_str_Tmp
))
>
1
SET
@long_str_Tmp
=
@long_str_Tm
相关文档:
1.使用Management Studio Express,用“Windows身份验证”登录,选中SQL服务器名,右击鼠标选择属性,在服务器属性选项页面,选择“安全性”,将服务器身份验证由 “Windows身份验证”改为“SQL Server和Windows身份验证”,单击确定。
2.使用SQL Server 2005外围应用配置器,选 ......
--1. 创建表,添加测试数据
CREATE TABLE tb(id int, [value] varchar(10))
INSERT tb SELECT 1, 'aa'
UNION ALL SELECT 1, 'bb'
UNION ALL SELECT 2, 'aaa'
UNION ALL SELECT 2, 'bbb'
UNION ALL SELECT 2, 'ccc'
--SELECT * from tb
/**//*
id value
----------- ----------
1 aa
1 bb
2 aaa
......
今天我在SQL Server 2005中用脚本创建一张表,查资料发现有的脚本中字段有加[]中符号,我问了冬季,得知是这回事,用[]的字段名,即便是sql关键字也可以作为字段名,不会报错。
SQL Server里的表中添加一个字段,如:time系统会自动加一对方括号即:[time] ......
从博客园中看到一篇文章,介绍大软件公司面试时常常会出的两道SQL题(见附录)。
我觉得受益很多,在此之前,我一直觉得,SQL2008似乎提供了这方面的支持,但更低的版本,包括2005,非游标做不出来(水平够菜)。总结心得如下:
1、 强大的group by
1 select stdname,
2 isnull(sum( ......
最近刚学会在VB2008 中使用参数化SQL语句,于是马上用到代码中,却碰到查不到任何数据的情况,纠结了好几天,还是没有搞明白,差点吐血。不得已还是先在代码中使用字符串拼接的SQL语句。
包含参数化SQL语句的代码如下:
Dim cmSl As N ......