㈠ 请讲解一下IIf函数和InStr函数
iif(a1,a2,a3)表示如果a1为真,结果就取a2
如果a1为假,结果就取a3
instr(a1,a2,a3) 表示在字符串a1中取子串
a2表示a2在a1中的位置,a3表示取的长度
㈡ sql instr函数在postgre可以用吗
不可以,需要自己写代码实现。。
参考:
CREATEORREPLACEFUNCTION"newms"."instr"(stringvarchar,string_to_searchvarchar,beg_indexint4)
RETURNS"pg_catalog"."int4"AS$BODY$
DECLARE
posintegerNOTNULLDEFAULT0;
temp_strvarchar;
beginteger;
lengthinteger;
ss_lengthinteger;
BEGIN
IFbeg_index>0THEN
temp_str:=substring(stringFROMbeg_index);
pos:=position(string_to_searchINtemp_str);
IFpos=0THEN
RETURN0;
ELSE
RETURNpos+beg_index-1;
ENDIF;
ELSE
ss_length:=char_length(string_to_search);
length:=char_length(string);
beg:=length+beg_index-ss_length+2;
WHILEbeg>0LOOP
temp_str:=substring(stringFROMbegFORss_length);
pos:=position(string_to_searchINtemp_str);
IFpos>0THEN
RETURNbeg;
ENDIF;
beg:=beg-1;
ENDLOOP;
RETURN0;
ENDIF;
END;
$BODY$
㈢ oracle instr 函数怎么转成 mssql 语句
select len('1_2_3_4')+1-charindex('_',REVERSE('1_2_3_4'))
㈣ asp accesss instr函数 转sql
instr在Access数据库中可用,到了SQL就不可用了;
但是SQL有一个函数很它作用等同的,它就是charindex函数,具体用法:
http://ke..com/view/1030958.htm
语句的用法有一些不同点:2个参数前后位置变换一下就OK
instr函数
datawhere="where ViewFlag=1 and instr(SortPath,'"&SortPath&"')>0 "
charindex函数
datawhere="where ViewFlag=1 and charindex('"&SortPath&"',SortPath)>0 "
㈤ oracle数据库中的instr的具体用法,在网上搜了很多,最终还是不明白,请教高手解释。
首先,你运行下这句
selectinstr('123,456',',')fromal
这个就是要查找逗号在123,456中的位置,结果是4,这个你应版该明白吧,就是左数权第4位是逗号
然后。这句
selectinstr('123,456,789',',')fromal
结果还是4,因为后边不加参数的话,就代表oracle要从最左端起,找第一个逗号,所以还是4,当你想查第二个逗号的位置的时候
selectinstr('123,456,789',',',5)fromal
后边多了一个5,也就是以5为起始位,开始找第一个逗号,所以最后结果就是8,也就是你要找的第二个逗号的位置了
4个参数
selectinstr('123,456,789',',',1,2)fromal
就是代表从第一位开始取,取第二个逗号的位置,结果是8,如果2换成3的话,因为不存在第三个逗号,所以返回0
㈥ vb中instr函数是什么
返回 Variant (Long),指定一字符串在另一字符串中最先出现的位置。
语法
InStr([start, ]string1, string2[, compare])
InStr 函数的语法具有下面的参数:
部分 说明
start 可选参数。为数值表达式,设置每次搜索的起点。如果省略,将从第一个字符的位置开始。如果 start 包含 Null,将发生错误。如果指定了 compare 参数,则一定要有 start 参数。
string1 必要参数。接受搜索的字符串表达式。
string2 必要参数。被搜索的字符串表达式。
Compare 可选参数。指定字符串比较。如果 compare 是 Null,将发生错误。如果省略 compare,Option Compare 的设置将决定比较的类型。
设置
compare 参数设置为:
常数 值 描述
vbUseCompareOption -1 使用Option Compare 语句设置执行一个比较。
vbBinaryCompare 0 执行一个二进制比较。
vbTextCompare 1 执行一个按照原文的比较。
vbDatabaseCompare 2 仅适用于Microsoft Access,执行一个基于数据库中信息的比较。
返回值
如果 InStr返回
string1 为零长度 0
string1 为 Null Null
string2 为零长度 Start
string2 为 Null Null
string2 找不到 0
在 string1 中找到string2 找到的位置
start > string2 0
说明
InStrB 函数作用于包含在字符串中的字节数据。所以 InStrB 返回的是字节位置,而不是字符位置。
InStr 函数示例
本示例使用 InStr 函数来查找某字符串在另一个字符串中首次出现的位置。
Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP" ' 被搜索的字符串。
SearchChar = "P" ' 要查找字符串 "P"。
' 从第四个字符开始,以文本比较的方式找起。返回值为 6(小写 p)。
' 小写 p 和大写 P 在文本比较下是一样的。
MyPos = Instr(4, SearchString, SearchChar, 1)
' 从第一个字符开使,以二进制比较的方式找起。返回值为 9(大写 P)。
' 小写 p 和大写 P 在二进制比较下是不一样的。
MyPos = Instr(1, SearchString, SearchChar, 0)
' 缺省的比对方式为二进制比较(最后一个参数可省略)。
MyPos = Instr(SearchString, SearchChar) ' 返回 9。
MyPos = Instr(1, SearchString, "W") ' 返回 0。
㈦ VB中Instr函数是什么
InStr 函数,返回 Variant (Long),指定一字符串在另一字符串中最先出现的位置,InStr函数可以找到指定的字符串在另一字符串中最先出现的位置。
使用这个函数的语法:
InStr([start, ]string1, string2[, compare])
这个函数需要的的参数是起始位置、主体字符串、要查找的字符串;Compare是可选参数。指定字符串比较。此compare参数是可以省略的,也可以是 0, 1或 2。
指定0(缺省)做二进制比较。指定1做不区分大小写的文本比较。例如我们要查找在字符串“abcdefg”中是否存在“cd”并返回其位置,则使用下面的语句就可以实现:
pos=InStr(1,"abcdefg","cd")
pos会返回3表示查找到并且位置为第三个字符开始。这就是“查找”的实现,而“查找下一个”功能的实现就是把当前位置作为起始位置继续查找。
(7)instr函数数据库扩展阅读:
instr函数为字符查找函数,其功能是查找一个字符串在另一个字符串中首次出现的位置。instr函数在Oracle/PLSQL中是返回要截取的字符串在源字符串中的位置。
参数
string1:源字符串,要在此字符串中查找。
string2:要在string1中查找的字符串 。
start_position:代表string1 的哪个位置开始查找。此参数可选,如果省略默认为1. 字符串索引从1开始。如果此参数为正,从左到右开始检索,如果此参数为负,从右到左检索,返回要查找的字符串在源字符串中的开始索引。
nth_appearance:代表要查找第几次出现的string2. 此参数可选,如果省略,默认为 1.如果为负数系统会报错。
㈧ instr的用法.谢谢
InStr([start, ]string1, string2[, compare])
其中:
start:设置开始查找的位置,可以省略,省略时默认从第一个字符开始查找,
string1是源字符
string2可以说是关键字
最后一个compare别管他啥2进制,一般找字符串就理解为是否区分大小写,如你的例题,返回6的那句,把他的值设为1,就是不区分大小写,因为是从第四个字符开始往后找,而且不区分大小写,所以返回值才是6
还如你的例子,返回值是9的那句,
MyPos = Instr(1, SearchString, SearchChar, 0)
这句的意思是,从第一个字符开找,并且compare是0,就是区分大小写,所以第9个字符是大写P,所以返回值是9。
(8)instr函数数据库扩展阅读
instr( string1, string2, start_position,nth_appearance )
参数
string1:源字符串,要在此字符串中查找。
string2:要在string1中查找的字符串 。
start_position:代表string1 的哪个位置开始查找。此参数可选,如果省略默认为1. 字符串索引从1开始。如果此参数为正,从左到右开始检索,如果此参数为负,从右到左检索,返回要查找的字符串在源字符串中的开始索引。
nth_appearance:代表要查找第几次出现的string2. 此参数可选,如果省略,默认为 1.如果为负数系统会报错。
㈨ Access中instr函数
本来instr如果找不到某个字符的时候返回的就是0啊,还有instr只能返回这个字符串里首次出现某个字符的位置
比如字符串为ABA,那么这个只返回1,而不会返回3
多嘴一句,我觉得你应该把语句写的标准点,括号,逗号什么的还是用英文写法的吧
我就随便建了个表
㈩ 怎样利用instr()函数防止SQL注入攻击
privatevoidbutton1_Click(objectsender,EventArgse)
{
//实例化数据库连接对象
SqlConnectionsqlcon=newSqlConnection("DataSource=(local);Database=Northwind;Uid=sa;Pwd=;");
//实例化数据库桥接器对象
SqlDataAdaptersqlda=newSqlDataAdapter("selectLastName,=@lastnameandFirstName=@firstname",sqlcon);
//为SQL语句中的参数赋值
sqlda.SelectCommand.Parameters.Add("@lastname",SqlDbType.NVarChar,20).Value=textBox1.Text;
sqlda.SelectCommand.Parameters.Add("@firstname",SqlDbType.NVarChar,10).Value=textBox2.Text;
DataSetmyds=newDataSet();//实例化DataSet数据集对象
sqlda.Fill(myds);//填充数据集
if(myds.Tables[0].Rows.Count>0)//判断数据集中的表中是否有行
MessageBox.Show("用户登录成功!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
else
{
MessageBox.Show("用户登录失败,原因为:用户名或密码错误!","错误",MessageBoxButtons.OK,MessageBoxIcon.Error);
textBox1.Text=textBox2.Text="";//清空文本框
textBox1.Focus();//为用户姓名文本框设置输入焦点
}
}