请帮忙做个vlookup函数的使用方法或组合vlookup函数的使用方法

女团f(x)函数注定是个变数?
扫描下方二维码关注 或微信搜索 公众号:韩国女子组合
全网唯一专注韩国女团微信公众号
每天轻松有趣女团推送,每天五分钟轻松了解韩娱圈各个女团,汇聚众多女团粉丝,来和我们一起关注吧!
众所周知,宋茜是以韩国女团f(x)成员身份出道,至今已迈入第8个年头,作为f(x)的队长,也是唯一一个中国人,目前来讲是组合内发展最好的一人。虽然队长全面发展,可是队员们的日子并不好过啊。从出道开始f(x)便顶着实验团的名称,这就注定了这个组合发展的曲折。即便组合成员个个才华横溢,但公司的不重视,使她们举步维艰,相比于其他组合一年1-2次的回归频率,函数的一年半的频率就稍显可怜。(文章来源:韩国女子组合网站 www.hannvtuan.com)
上一次的回归还要追溯到2015年,除此之外在2016年年初开了出道以来的第一个演唱会,7年才换来第一个演唱会,可见f(x)的不易。长时间的空窗期,使得组合成员按耐不住,amber近期在ins上透露心境,等待的累了,表现出对公司的失望。然而即便是明确表达不满,公司依旧没有任何回应,所谓养女就是如此吧。而组合人气最高的Krystal也并未获得公司倾注的太多资源。
从2015年雪莉的退团再到如今的宋茜回国发展,是否预示着成立7年多的函数团即将解散,韩国组合的&七年之痒&是否会在她们身上发生。近来多个组合宣布解散,函数回归又是遥遥无期,为她们的前途蒙上了一层面纱,f(x)究竟是蓄势待发还是前景堪忧?
最新女团资讯
本周【娱乐】阅读排行
142,215次浏览
45,690次浏览
43,356次浏览
73,016次浏览
22,502次浏览
15,821次浏览
11,491次浏览
16,710次浏览
6,940次浏览
39,741次浏览
22,033次浏览
48,272次浏览
13,089次浏览
16,116次浏览
8,859次浏览
3,939次浏览
15,809次浏览
5,113次浏览
46,814次浏览
19,284次浏览
9,760次浏览
5,533次浏览
9,797次浏览
5,856次浏览
韩国女子组合时尚流行阅读 14812
Postgresql里面内置了很多的实用函数,下面介绍下组合和切割函数
环境:PostgreSQL 9.1.2
& & & & & CENTOS 5.7 final
一.组合函数
a.语法介绍
concat(str "any" [, str "any" [, ...]])
Concatenate all but first arguments with separators.
The first parameter is used as a separator.
NULL arguments are ignored.b.实际例子:
postgres=# create table t_kenyon(id int,name varchar(10),remark text);
CREATE TABLE
postgres=# insert into t_kenyon values(1,'test','kenyon'),(2,'just','china'),(3,'iam','lovingU');
INSERT 0 3
postgres=# insert into t_kenyon values(4,'test',null);
INSERT 0 1
postgres=# insert into t_kenyon values(5,null,'adele');
INSERT 0 1
postgres=# select * from t_
id | name | remark
----+------+---------
1 | test | kenyon
2 | just | china
4 | test |
postgres=# select concat(id,name,remark) from t_
-------------
1testkenyon
2justchina
3iamlovingU
(5 rows)c.说明
concat函数纯粹是一个拼接函数,可以忽略null值拼接,拼接的值没有分隔符,如果需要分割符,则需要用下面的函数concat_ws。
2.concat_ws
a.语法介绍
concat_ws(sep text, str "any" [, str "any" [,...] ])
Concatenate all but first arguments with separators.
The first parameter is used as a separator.
NULL arguments are ignored.b.实际应用
postgres=# select concat_ws(',',id,name,remark) from t_
---------------
1,test,kenyon
2,just,china
3,iam,lovingU
postgres=# select concat_ws('_',id,name,remark) from t_
---------------
1_test_kenyon
2_just_china
3_iam_lovingU
postgres=# select concat_ws('',id,name,remark) from t_
-------------
1testkenyon
2justchina
3iamlovingU
postgres=# select concat_ws('^_*',id,name,remark) from t_
-------------------
1^_*test^_*kenyon
2^_*just^_*china
3^_*iam^_*lovingU
(5 rows)c.说明 concat_ws函数比concat函数多了分隔符的功能,其实就是concat的升级版,假如分隔符为'',则取出来的结果和concat是一样的。concat_ws分隔符还支持多个字符作为分隔符的,日常用得更多的可能是||。&
二、切割函数
1.split_part
a.语法介绍
split_part(string text, delimiter text, field int)
Split string on delimiter and return the given field (counting from one)b.实际例子
postgres=# select split_part('abc~@~def~@~ghi','~@~', 2);
split_part
------------
postgres=# select split_part('now|year|month','|',3);
split_part
------------
(1 row)c.说明
该函数对按分隔符去取某个特定位置上的值非常有效果
2.regexp_split_to_table
a.语法介绍
regexp_split_to_table(string text, pattern text [, flags text])
Split string using a POSIX regular expression as the delimiter.b.使用例子
postgres=# SELECT regexp_split_to_table('kenyon,love,,china,!',',');
regexp_split_to_table
-----------------------
--按分割符切割
postgres=# SELECT regexp_split_to_table('kenyon, china loves',E'\\s');
regexp_split_to_table
-----------------------
--按字母切割
postgres=# SELECT regexp_split_to_table('kenyon,,china',E'\\s*');
regexp_split_to_table
-----------------------
3.regexp_split_to_array
a.语法介绍
regexp_split_to_array(string text, pattern text [, flags text ])
Split string using a POSIX regular expression as the delimiter.b.实际例子
postgres=# SELECT regexp_split_to_array('kenyon,love,,china,!',',');
regexp_split_to_array
--------------------------
{kenyon,love,"",china,!}
postgres=# SELECT regexp_split_to_array('kenyon,love,,china!','s*');
regexp_split_to_array
-----------------------------------------------
{k,e,n,y,o,n,",",l,o,v,e,",",",",c,h,i,n,a,!}
(1 row)c.说明
上面用到的flag里的s*表示split all,E'\\s'表示转义空格
& 著作权归作者所有
人打赏支持
码字总数 121714
引用来自“paprikarr”的评论楼主。按位截取该怎么写?比如一串9位数字
每四位截取,结果为 ,这种该怎么写?需要写一个循环了,这个数据串里都没分隔符
楼主。按位截取该怎么写?比如一串9位数字
每四位截取,结果为 ,这种该怎么写?
引用来自“skyvoice”的评论PostgreSQL /pg 确实厉害啊
PostgreSQL /pg 确实厉害啊
好介绍。。建议像 万一 的DELPHI博客一样,整理为专辑,功德一件偶本是玩SQL SERVER的,现在也关注一下PostgreSQL
引用来自“宏哥”的评论非常强.OSC 应该把楼主的博客搞一个专题.楼主的信息让我认识到, 说OSC完全不是一个技术社区,是不公正的.过奖了,呵呵
非常强.OSC 应该把楼主的博客搞一个专题.楼主的信息让我认识到, 说OSC完全不是一个技术社区,是不公正的.
评论删除后,数据将无法恢复
标签 PostgreSQL , PG DBA cookbook , PG Oracle兼容性 , PG 架构师 cookbook , PG 开发者 cookbook , PG 应用案例 背景 「剑魔独孤求败,纵横江湖三十馀载,杀尽仇寇,败尽英雄,天下更无抗...
标签 PostgreSQL , 优化器 , 采样 , 多列统计信息 , 行评估 , 大表任意维度过滤行数评估 背景 在任意维度查询(ADHoc)的场景中,有诸多技术手段来保证查询的性能,比如rum索引,GIN倒排索引...
标签 PostgreSQL , pgbench , 增强 , 11 背景 PostgreSQL 11 pgbench压测软件增强。 详细用法参考, pgbench非常强大,且性能非常好。 https://www.postgresql.org/docs/devel/static/pgbench...
标签 PostgreSQL , Oracle , Greenplum 背景 去O很大程度上是国家层面的战略考虑,比如斯诺登事件,最近贸易战的“中兴”事件,使得去O成为一个不可不做的事情。 但是去O喊了若干年,并没有真...
  pgsql已经更新到beta11了不同版本的服务器启动或相关命令、配置可能会有不同所以得根据pg版本进行操作。下面记录一些工作中常用到的一些操作主要包括服务启动、备份/恢复数据、数据目录迁...
zhoujie0111
没有更多内容
加载失败,请刷新页面
使用rnn 拟合延时和反转序列 其实感觉这一层rnn还不如全用全连接,当序列长度过长时,需要增加最后全连接节点数目,但是序列比较短的话,参数太多,结果很准确。。。。 滚动序列,将序列向右...
Windows Driver Kit (WDK) 包含各种驱动程序的示例源代码。这些示例可在您编写自己的驱动程序时提供有用指导。在安装 WDK 时,示例将安装到 \src 目录的子目录中。 下表列出了一些 示例子目录...
1.创建用户 命令:CREATE USER 'face'@'%' IDENTIFIED BY 'Asdf@1111'; %:所有远程账号,localhost:本地账号 2.给用户授权 命令: GRANT all privileges ON face_recognition.* TO 'face'@'......
一、描述 go语言是直接将源码编译成二进制机器码的语言;它支持面向对象、也支持函数式编程;支持并发很容易; 二、基本语法学习路径 https://studygolang.com/subject/2...
JSP 中一共预先定义了 9 个这样的对象,分别为:request、response、session、application、out、pagecontext、config、page、exception ,下面就简单介绍下。 1、request 对象 request 对象...
没有更多内容
加载失败,请刷新页面
文章删除后无法恢复,确定取消删除此文章吗?
亲,自荐的博客将通过私信方式通知管理员,优秀的博客文章审核通过后将在博客推荐列表中显示
确定推荐此文章吗?
确定推荐此博主吗?
聚合全网技术文章,根据你的阅读喜好进行个性推荐
指定官方社区
深圳市奥思网络科技有限公司版权所有一个万金油函数(Index Small If Row)
【导读】:INDEX+SMALL+IF+ROW的函数组合,号称“万能”的函数组合,就是解决一对多查询的一种通式,如果你能掌握,那在Excel里基本上就没有什么查询你是实现不了的了(除了INDIRECT+RC引用)。
很多人在Excel中用函数公式做查询的时候,都必然会遇到的一个大问题,那就是一对多的查找/查询公式应该怎么写?大多数人都是从VLOOKUP、INDEX+MATCH中入门的,纵然你把全部的多条件查找方法都学会了而且运用娴熟,如VLOOKUP和&、SUMPRODUCT、LOOKUP(1,0/....,但仍然只能对这种一对多的查询望洋兴叹。
这里讲的INDEX+SMALL+IF+ROW的函数组合,号称&万能&的函数组合,就是解决一对多查询的一种通式,如果你能掌握,那在Excel里基本上就没有什么查询你是实现不了的了(除了INDIRECT+RC引用)。
这个函数的特点是:能提取出满足某条件或某些条件的所有数据,可以一次性返回单行单列或多行多列的结果。
让我们通过一个实例来认识一下它们到底有多&万能&吧!
公式应用情景介绍
如下图,A1:F9单元格为某次考试结果,每个人一行数据。现在需要在B11单元格(棕色底色填充)输入班级名称,在A14:F21区域返回该班级所有学生考试成绩信息。
本例假设需要查询【1班】所有学生的成绩。
解决问题思路分析
我们的目的是要提取出A列班级名称与B11单元格内容一致的所有数据,如果:1)能提取出符合条件的所有行数;
2)这些行数能从小到大一个一个的输出;
3)可以从原始数据中按第2步输出的行数把数据引用过来,那么问题就解决了。
恰好,在Excel中存在这么几个函数能达到目的,下面我们来逐个介绍。
如何提取出符合条件的所有行数?
我们可以使用IF函数判断来生成所有符合条件的行号数组,如下:
=IF($A$2:$A$9=$B$11,ROW($A$2:$A$9))
$A$2:$A$9=B11判断A列数据是否和B11单元格内容一致,会返回TRUE和FALSE的数组。
如果$A$2:$A$9=B11则返回A2:A9的行号,否则返回FALSE。
本例生成的数组为棕色部分(A2=1班,所以返回A2的行号2,以此类推),按F9可以看到如下数组:
{2;FALSE;FALSE;5;6;FALSE;FALSE;9}
如果要满足多个条件,可以用
=IF((条件区域1=条件)*(条件区域2=条件2),ROW(区域))
这种方式来实现,例如要返回【班级】为&1班&且【总分】&200的查询结果,此部分可以改成:
=IF(($A$2:$A$9=&一班&)*($F$2:$F$9&200),ROW($A$2:$A$9))
如何顺序输出上一步获得的行号?
由于上一步获得的符合条件的行号数组是数字和FALSE的组合,我们利用SMALL函数就可以逐步输出符合条件的行号。
举例来说,SMALL({11,22,33},1)=11,也就是SMALL返回第一参数中第1(第二参数)小的数字。
同理,SMALL({11,22,33},2)=22。
为了下拉公式方便,我们一般用ROW()函数做SMALL的第二参数,保证下拉公式时自动提取第2小,第3小&&
也就是用:
=SMALL(IF($A$2:$A$9=$B$11,ROW($A$2:$A$9)),ROW(A1))
将第一步产生的数组中符合条件的行号从最小的开始连续输出。从下图可以看到,符合条件的行号已经可以连续输出了。
错误值可以先不用关心,后面我们用其他函数屏蔽。
接下来,用函数提取数据
最后一步提取数据可以选用的函数比较多,本例介绍INDEX函数方法。
简单说,INDEX函数可以实现从第一参数中提取出第二参数个数据的目的。
例如:=INDEX({11,21,31},1)返回11,也就是从{11,21,31}提取第1个数字;=INDEX({11,21,31},2)返回21,也就是从{11,21,31}提取第2个数字。
那么,我们用(红色部分是上一步SMALL函数,第一个返回值为2):
=INDEX(A$1:A$9,SMALL(IF($A$2:$A$9=$B$11,ROW($A$2:$A$9)),ROW(A1)))
就可以返回A1:A9中的第2个值,也就是第1个&1班&;下拉公式就返回了第2个&1班&&&
我们把上一步的函数组合放在查询结果区域的第一列,Ctrl+Shift+enter运行公式,并下拉,结果如下:
这样就获得了班级的返回结果。
后面要获取姓名和各科成绩等信息怎么办呢?
通过分析,我们知道了SMALL函数输出的结果已经固定不变了,现在只需要改变INDEX函数引用的列即可。
因此我们将INDEX函数的第一参数设置成了A$1:A$9【行绝对引用,列相对引用】,这样,我们向右拉动公式就会自动变成B$1:B$9。
完成效果图如下:
屏蔽错误值
可以看到上步产生的结果还有错误值存在,我们用IFERROR函数去屏蔽错误值,如果INDEX函数返回的是错误值,则在单元格返回空。
=IFERROR(INDEX(A$1:A$9,SMALL(IF($A$2:$A$9=$B$11,ROW($A$2:$A$9)),ROW(A1))),&&)
这样就最终完成了查询功能的设置。
一般还有用INDEX(大区域,SMALL(IF(条件区域=条件,ROW(条件区域),4^8),ROW(A1)))&&&这种方式去屏蔽错误值,这种屏蔽错误值的思路是,如果条件区域=条件就返回条件区域行号,否则返回一个比较大的用不到的行号,比如说4^8行或数据区域下面的一个空行行号。这样,INDEX在输出完所有符合条件的行后开始调用4^8行的值(空单元格),为了避免返回0所以再加上一个&&&。
本例未使用此种方法,主要是由于后面要查询的其他列有数字,用上述&&&的方法数字会变成文本。
如果有日期的时候,日期格式存储的数据会变成一个数字。
------分隔线----------------------------
猜您感兴趣
文章点击榜
函数VLOOKUP只能在首列搜索,返回指定列的数据,但很多时候我们要从右到左进行逆序查找,怎...
办公达人教你INDEX和MATCH函数嵌套应用。...
我们都知道2010年南非世界杯赛于日至7月11日举行。 我们将DATE函数和TODAY函数配合使...
使用排序的方法通常只能解决一行或一列数字的排序。 如果是多行或多列区域数据排序,可以...
有一个数据表如附件所示,要求统计A2:A11单元格区域中不重复记录的个数。office办公达人教你...
网站为公益性网站,部分内容来源网络,如无意中侵犯了您的版权,请来信告知,我们会在第一时间处理
CopyRight(C) ,www.officedoyen.com 版权所有查看:3444|回复:13
中级工程师
VB 中有两个非常好用的字符串处理函数:
Split(字符串,分隔符)作用:将【字符串】以【分隔符】作为边界,分解成数组。 返回:一个字符串数组。
Join(字符数组,分隔符)作用:将【字符数组】中的元素,以【分隔符】作为边界,连接成一个字符串。返回:一个字符串。
& && &请教老师们,SQL里是否有类似的函数?
我想了想,SQL中字符串数组,可以用字符串表变量替代。理论上似乎是可行的。
Join函数是否能起到聚合的效果?
本帖最后由 lifox 于
18:32 编辑
小微企业IT帮
--各种字符串分函数
-- 使用游标法进行字符串合并处理的示例。
--处理的数据
CREATE TABLE tb(col1 varchar(10),col2 int)
INSERT tb SELECT 'a',1
UNION ALL SELECT 'a',2
UNION ALL SELECT 'b',1
UNION ALL SELECT 'b',2
UNION ALL SELECT 'b',3
--合并处理
--定义结果集表变量
TABLE(col1 varchar(10),col2 varchar(100))
--定义游标并进行合并处理
DECLARE tb CURSOR LOCAL
SELECT col1,col2 FROM tb ORDER BY&&col1,col2
DECLARE @col1_old varchar(10), varchar(10),@col2 int,@s varchar(100)
FETCH tb INTO @col1,@col2
SELECT @col1_old=@col1,@s=\'\'
WHILE @@FETCH_STATUS=0
& & & & IF @col1=@col1_old
& & & & & & & & SELECT @s=@s+\',\'+CAST(@col2 as varchar)
& & & & ELSE
& & & & BEGIN
& & & & & & & & INSERT
VALUES(@col1_old,STUFF(@s,1,1,\'\'))
& & & & & & & & SELECT @s=\',\'+CAST(@col2 as varchar),@col1_old=
& & & & END
& & & & FETCH tb INTO @col1,@col2
VALUES(@col1_old,STUFF(@s,1,1,\'\'))
DEALLOCATE tb
--显示结果并删除测试数据
SELECT * FROM
DROP TABLE tb
col1& && & col2
---------- -----------
a& && && & 1,2
b& && && & 1,2,3
/*==============================================*/
-- 使用用户定义函数,配合SELECT处理完成字符串合并处理的示例
--处理的数据
CREATE TABLE tb(col1 varchar(10),col2 int)
INSERT tb SELECT 'a',1
UNION ALL SELECT 'a',2
UNION ALL SELECT 'b',1
UNION ALL SELECT 'b',2
UNION ALL SELECT 'b',3
--合并处理函数
CREATE FUNCTION dbo.f_str( varchar(10))
RETURNS varchar(100)
& & & & DECLARE @re varchar(100)
& & & & SET @re=\'\'
& & & & SELECT @re=@re+\',\'+CAST(col2 as varchar)
& & & & FROM tb
& & & & WHERE col1=
& & & & RETURN(STUFF(@re,1,1,\'\'))
--调用函数
SELECT col1,col2=dbo.f_str(col1) FROM tb GROUP BY col1
--删除测试
DROP TABLE tb
DROP FUNCTION f_str
col1& && & col2
---------- -----------
a& && && & 1,2
b& && && & 1,2,3
/*==============================================*/
-- 使用临时表实现字符串合并处理的示例
--处理的数据
CREATE TABLE tb(col1 varchar(10),col2 int)
INSERT tb SELECT 'a',1
UNION ALL SELECT 'a',2
UNION ALL SELECT 'b',1
UNION ALL SELECT 'b',2
UNION ALL SELECT 'b',3
--合并处理
SELECT col1,col2=CAST(col2 as varchar(100))
INTO #t FROM tb
ORDER BY col1,col2
varchar(10),@col2 varchar(100)
UPDATE #t SET
& & & & @col2=CASE WHEN @col1=col1 THEN @col2+\',\'+col2 ELSE col2 END,
& & & & @col1=col1,
& & & & col2=@col2
SELECT * FROM #t
/*--更新处理后的临时表
col1& && & col2
---------- -------------
a& && && & 1
a& && && & 1,2
b& && && & 1
b& && && & 1,2
b& && && & 1,2,3
--得到最终结果
SELECT col1,col2=MAX(col2) FROM #t GROUP BY col1
col1& && & col2
---------- -----------
a& && && & 1,2
b& && && & 1,2,3
--删除测试
DROP TABLE tb,#t
/*==============================================*/
-- 每组 &=2 条记录的合并
--处理的数据
CREATE TABLE tb(col1 varchar(10),col2 int)
INSERT tb SELECT 'a',1
UNION ALL SELECT 'a',2
UNION ALL SELECT 'b',1
UNION ALL SELECT 'b',2
UNION ALL SELECT 'c',3
--合并处理
SELECT col1,
& & & & col2=CAST(MIN(col2) as varchar)
& & & & & & & & +CASE
& & & & & & & & & & & & WHEN COUNT(*)=1 THEN ''
& & & & & & & & & & & & ELSE ','+CAST(MAX(col2) as varchar)
& & & & & & & & END
GROUP BY col1
DROP TABLE tb
col1& && & col2& && &
---------- ----------
a& && && & 1,2
b& && && & 1,2
c& && && & 3
-- 每组 &=3 条记录的合并
--处理的数据
CREATE TABLE tb(col1 varchar(10),col2 int)
INSERT tb SELECT 'a',1
UNION ALL SELECT 'a',2
UNION ALL SELECT 'b',1
UNION ALL SELECT 'b',2
UNION ALL SELECT 'b',3
UNION ALL SELECT 'c',3
--合并处理
SELECT col1,
& & & & col2=CAST(MIN(col2) as varchar)
& & & & & & & & +CASE
& & & & & & & & & & & & WHEN COUNT(*)=3 THEN ','
& & & & & & & & & & & & & & & & +CAST((SELECT col2 FROM tb WHERE col1=a.col1 AND col2 NOT IN(MAX(a.col2),MIN(a.col2))) as varchar)
& & & & & & & & & & & & ELSE ''
& & & & & & & & END
& & & & & & & & +CASE
& & & & & & & & & & & & WHEN COUNT(*)&=2 THEN ','+CAST(MAX(col2) as varchar)
& & & & & & & & & & & & ELSE ''
& & & & & & & & END
GROUP BY col1
DROP TABLE tb
col1& && & col2
---------- ------------
a& && && & 1,2
b& && && & 1,2,3
c& && && & 3
SQL Server 2008 MCITP | SQL Server 2012 MCSE | SQL Server MVP | MySQL 5.6 OCP | Oracle 11g OCP
小微企业IT帮
复制内容到剪贴板代码:& & --Split 表函数将一个字符串按指定分隔符进行分割,返回一个表。&&
& & create function split(&&
& && &&& varchar(255),--待分割字符串&&
& && &&&@separator varchar(255)--分割符&&
& & )returns @array table(item varchar(255))&&
& & begin&&
& && &&&declare
int,@end int, varchar(255)&&
& && &&&set
& && &&&set @end=charindex(@separator,@string,@begin)&&
& && &&&while(@end&&0)&&
& && &&&begin&&
& && && && &set
= substring(@string,@begin,@end-@begin)&&
& && && && &insert into @array(item) values(@item)&&
& && && && &set
= @end+1&&
& && && && &set @end=charindex(@separator,@string,@begin)&&
& && &&&end&&
& && &&&set
= substring(@string,@begin,len(@string)+1-@begin)&&
& && &&&if (len(@item)&0)&&
& && && && &insert into @array(item) values(substring(@string,@begin,len(@string)+1-@begin))&&
& && &&&return&&
SQL Server 2008 MCITP | SQL Server 2012 MCSE | SQL Server MVP | MySQL 5.6 OCP | Oracle 11g OCP
中级工程师
引用:原帖由 UltraSQL 于
18:40 发表
& & --Split 表函数将一个字符串按指定分隔符进行分割,返回一个表。&&
& & create function split(&&
& && &&& varchar(255),--待分割字符串&&
& && &&&@separator varchar(255)--分割符&&
& & )returns
... 我搞了一下午都没搞好!
这么快就给出答案!!
高手高手高高手啊!
UltraSQL版主,请收下我的膝盖!哈哈哈!...................
本帖最后由 lifox 于
19:05 编辑
中级工程师
为什么不能做个类似 Join(字符数组,分隔符)的函数,用表变量作为输入参数??
沒效能的考量用UltraSQL大大的方式即可
用CLR效能會好很多
可以做出你要的 Join(字符数组,分隔符)的函数
中级工程师
引用:原帖由 johnson223 于
19:57 发表
沒效能的考量用UltraSQL大大的方式即可
用CLR效能會好很多
可以做出你要的 Join(字符数组,分隔符)的函数 啊?还有更高效的办法!!!!
高人啊!雪地 后空翻 跪地&&求指点!!!!!
中级工程师
引用:原帖由 johnson223 于
20:19 发表
http://www.dotblogs.com.tw/dc690216/archive//10991.aspx 哦! 谢谢!
我明白了,是自己做个C语言DLL,再在SQL中调用。
小微企业IT帮
好贴 我要整理收录到我的博文中
SQL Server 2008 MCITP | SQL Server 2012 MCSE | SQL Server MVP | MySQL 5.6 OCP | Oracle 11g OCP
中级工程师
引用:原帖由 UltraSQL 于
21:43 发表
好贴 我要整理收录到我的博文中 我稍作了修改 请@UltraSQL老师看看:复制内容到剪贴板代码:ALTER function [dbo].[split](&&
& && &&& nvarchar(MAX),--待分割字符串&&
& && &&& nvarchar(10),--分割符
& && &&&@0String int=0 --为【1】过滤空字符串
& & )returns @array table(item nvarchar(MAX))&&
& & begin&&
& && &&&declare
int,@end int, int, nvarchar(MAX);&&
& && &&&SET @L=LEN(@分割符)
& && &&&set
& && &&&set @end=charindex(@分割符,@String,@begin);&&
& && &&&while(@end&&0)&&
& && &&&begin&&
& && && && &set
= substring(@String,@begin,@end-@begin);&&
& && && && &IF @0String&&1 or len(@item)&0 insert into @array(item) values(@item);&&
& && && && &set
= @end+@L;
& && && && &set @end=charindex(@分割符,@String,@begin);&&
& && &&&end&&
& && &&&set
= substring(@String,@begin,len(@String)+1-@begin);
& && &&&if (len(@item)&0) insert into @array(item) values(@item);&&
& && &&&return&&
本帖最后由 lifox 于
06:52 编辑
可以自定义函数,参考:
SQL Server MCITP, MVP, MCT, DBA
小微企业IT帮
自定义函数和CLR实现方式已整理到博文,请参见:
SQL Server 2008 MCITP | SQL Server 2012 MCSE | SQL Server MVP | MySQL 5.6 OCP | Oracle 11g OCP
Ryan 你太高效了!
SQL Server DBA}

我要回帖

更多关于 excel函数公式大全 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信