首页编程informix函数?informix返回某字符的位置的函数

informix函数?informix返回某字符的位置的函数

编程之家2023-11-02113次浏览

各位老铁们,大家好,今天由我来为大家分享informix函数,以及informix返回某字符的位置的函数的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

informix函数?informix返回某字符的位置的函数

很急!有没有知道informix中row_number over 函数怎么用啊

row_number() OVER(PARTITION BY COL1 ORDER BY COL2)表示根据COL1分组,在分组内部根据 COL2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的).

与rownum的区别在于:使用rownum进行排序的时候是先对结果集加入伪列rownum然后再进行排序,而此函数在包含排序从句后是先排序再计算行号码.

row_number()和rownum差不多,功能更强一点(可以在各个分组内从1开时排序).

rank()是跳跃排序,有两个第二名时接下来就是第四名(同样是在各个分组内).

dense_rank()l是连续排序,有两个第二名时仍然跟着第三名。相比之下row_number是没有重复值的.

lag(arg1,arg2,arg3):

informix函数?informix返回某字符的位置的函数

arg1是从其他行返回的表达式

arg2是希望检索的当前行分区的偏移量。是一个正的偏移量,时一个往回检索以前的行的数目。

arg3是在arg2表示的数目超出了分组的范围时返回的值。

看几个SQL语句:

语句一:

select row_number() over(order by sale/cnt desc) as sort, sale/cnt

informix函数?informix返回某字符的位置的函数

from(

select-60 as sale,3 as cnt from dual union

select 24 as sale,6 as cnt from dual union

select 50 as sale,5 as cnt from dual union

select-20 as sale,2 as cnt from dual union

select 40 as sale,8 as cnt from dual);

执行结果:

SORT SALE/CNT

--------------------

1 10

2 5

3 4

4-10

5-20

语句二:查询员工的工资,按部门排序

select ename,sal,row_number() over(partition by deptno order by sal desc) as sal_order from scott.emp;

执行结果:

ENAME SAL SAL_ORDER

----------------------------------------

KING 5000 1

CLARK 2450 2

MILLER 1300 3

SCOTT 3000 1

FORD 3000 2

JONES 2975 3

ADAMS 1100 4

SMITH 800 5

BLAKE 2850 1

ALLEN 1600 2

TURNER 1500 3

WARD 1250 4

MARTIN 1250 5

JAMES 950 6

已选择14行。

语句三:查询每个部门的最高工资

select deptno,ename,sal from

(select deptno,ename,sal,row_number() over(partition by deptno order by sal desc) as sal_order

from scott.emp) where sal_order<2;

执行结果:

DEPTNO ENAME SAL

----------------------------------------

10 KING 5000

20 SCOTT 3000

30 BLAKE 2850

已选择3行。

语句四:

select deptno,sal,rank() over(partition by deptno order by sal) as rank_order from scott.emp order by deptno;

执行结果:

DEPTNO SAL RANK_ORDER

------------------------------

10 1300 1

10 2450 2

10 5000 3

20 800 1

20 1100 2

20 2975 3

20 3000 4

20 3000 4

30 950 1

30 1250 2

30 1250 2

30 1500 4

30 1600 5

30 2850 6

已选择14行。

语句五:

select deptno,sal,dense_rank() over(partition by deptno order by sal) as dense_rank_order from scott.emp order by deptn;

执行结果:

DEPTNO SAL DENSE_RANK_ORDER

------------------------------------

10 1300 1

10 2450 2

10 5000 3

20 800 1

20 1100 2

20 2975 3

20 3000 4

20 3000 4

30 950 1

30 1250 2

30 1250 2

30 1500 3

30 1600 4

30 2850 5

已选择14行。

informix返回某字符的位置的函数

如下:函数名: strstr功能:在字符串中查找指定字符串的第一次出现用法: char*strstr(char*str1, char*str2); strstr原型:extern char*strstr(char*haystack, char*needle);头文件:#include<string.h>功能:从字符串haystack中寻找needle第一次出现的位置(不比较结束符NULL)。说明:返回指向第一次出现needle位置的指针,如果没找到则返回NULL。编辑本段函数原型 1.Copyright 1990 Software Development Systems, Inc. char*strstr( const char*s1, const char*s2){ int len2; if(!(len2= strlen(s2))) return(char*)s1; for(;*s1;++s1){ if(*s1==*s2&& strncmp( s1, s2, len2)==0) return(char*)s1;} return NULL;} 2.Copyright 1986- 1999 IAR Systems. All rights reserved char*strstr(const char*s1, const char*s2){ int n; if(*s2){ while(*s1){ for(n=0;*(s1+ n)==*(s2+ n); n++){ if(!*(s2+ n+ 1)) return(char*)s1;} s1++;} return NULL;} else return(char*)s1;}编辑本段举例// strstr.c#include<syslib.h>#include<string.h> main(){ char*s="Golden Global View"; char*l="lob"; char*p; clrscr(); p=strstr(s,l); if(p) printf("%s",p); else printf("Not Found!"); getchar(); return 0;}语法:* strstr(str1,str2) str1:被查找目标 string expression to search. str2:要查找对象 The string expression to find.该函数返回str2第一次在str1中的位置,如果没有找到,返回NULL The strstr() function returns the ordinal position within str1 of the first occurrence of str2. If str2 is not found in str1, strstr() returns 0.例子:功能:从字串” string1 onexxx string2 oneyyy”中寻找”yyy”(假设xxx和yyy都是一个未知的字串) char*s=” string1 onexxx string2 oneyyy”; char*p; p=strstr(s,”string2”); if(p==NULL) printf(“Not Found!”); p=strstr(p,”one”); if(p==NULL) printf(“Not Found!”); p+=strlen(“one”); printf(“%s”,p);说明:如果直接写语句p=strstr(s,”one”),则找到的是onexxx string2 oneyyy,不符合要求所以需采用二次查找法找到目标

如何在Informix中创建并使用函数索引

设置以下环境变量:

INFORMIXDIR the location of your IDS installation

PATH add$INFORMIXDIR/bin

add$INFORMIXDIR/extend/<spatialDataBladeDir>/bin(see below)

安装Spatial DataBlade。安装指导可从 IDS 11.10信息中心获得(参考本文末尾的链接)。

下面的指令假设您已经在默认位置安装好了 Spatial DataBlade version 8.21:$INFORMIXDIR/extend/spatial.8.21.xC1,其中‘x’表示特定于平台的字母。对于 64位 Linux x86,默认位置为$INFORMIXDIR/extend/spatial.8.21.FC1。可根据您的环境对指令作出相应修改。

为空间数据创建 sbspace。注意:sbspace名必须与 ONCONFIG文件中的 SYSSBSPACENAME值匹配。本例假设 sbspace名为 syssbspace。

在与根dbspace相同的目录中创建名为 syssbspace的空文件(ONCONFIG文件中 ROOTPATH的值指定根dbspace的名称和位置)。

将文件所有权改为informix:informix。

将文件权限改为mode 660。

以用户informix的身份,创建sbspace:

onspaces-c-S syssbspace-p<fullpath>/syssbspace-o 0-s 100000

创建您的数据库。

dbaccess--

create database spatialdb;

注册 Spatial DataBlade。

使用 blademgr实用工具注册 Spatial DataBlade。Spatial DataBlade依赖于 R-Tree DataBlade,后者由 IDS自动附带。因此,必须同时向您的数据库注册这两个 DataBlade。

blademgr

register ifxrltree.2.00 spatialdb

register spatial.8.21.FC1 spatialdb

list spatialdb

DataBlade modules registered in database spatialdb:

ifxrltree.2.00 spatial.8.21.FC1

加载空间数据。

从City Limits 2007和Tsunami Inundation Line下载中提取文件,并分别保存在两个目录中,即citylim_2007和tsunami:

ls citylim_2007

citylim_2007.dbf

citylim_2007.prj

citylim_2007.sbn

citylim_2007.sbx

citylim_2007.shp

citylim_2007.shp.xml

citylim_2007.shx

ls tsunami

PRJdevelopment.pdf

tsunami.dbf

tsunami.html

tsunami.pdf

tsunami.prj

tsunami.shp

tsunami.shp.xml

tsunami.shx

感谢您花时间阅读本文!我们希望通过对informix函数和informix返回某字符的位置的函数的问题进行探讨,为您提供了一些有用的见解和解决方案。如果您需要更多帮助或者有其他疑问,请不要犹豫与我们联系。

python ide python ide是什么ftp客户端 什么是FTP客户端