㈠ 請講解一下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();//為用戶姓名文本框設置輸入焦點
}
}