Ⅰ sql語言中的concat函數和nvl函數二者有什麼區別
完全不同的兩個函數,concat函數是把參數轉化成字元串然後連接起來返回,如果有參數中有一個是Null的話就返回null,concat('A','B')返回結果就是'AB',Nvl函數是返回Null的替代值,有兩個參數,例如 Nvl(Parameter1,Parameter2),如果Parameter1是Null,那就返回Parameter2,如果Parameter1不是Null,那就返回Parameter1。還有一個類似的函數是Nvl2,Nvl2函數有3 個參數,例如Nvl2(Parameter1,Parameter2,Parameter3),如果Parameter1不為null返回Parameter2,否則返回Parameter3
Ⅱ SQLSERVER中有沒有concat函數
MSSQLSERVER沒有ORACLE或MySQL里的CONCAT函數。
MSSQL資料庫需要將多個字元串連接起來時,可以直接使用運算符+號,不需要像mysql那樣使用concat函數來連接字元串。
例如表達式: 'abc' + 'efg'將返回'abcdefg'。
請注意null值與字元串使用+號連接時將返回空值null。
Ⅲ sql concat 可以作用與條件嗎
MSSQLSERVER沒有ORACLE或MySQL里的CONCAT函數。 MSSQL資料庫需要將多個字元串連接起來時,可以直接使用運算符+號,不需要像mysql那樣使用concat函數來連接字元串。 例如表達式: 'abc' + 'efg'將返回'abcdefg'。
Ⅳ 問下這句sql 中間的兩個concat怎麼理解
NAME LIKE CONCAT(CONCAT('%', #{pd.keywords}),'%')
兩層CONCAT拼接了兩次,把它拆開來看,第一個CONCAT是『CONCAT('%', #{pd.keywords})』,假設'#{pd.keywords}'得出的值是'name',那麼拼出的結果是'%name',第二個是用第一個的值再拼一個%,那麼就是CONCAT('%name','%') ,得到的結果就是'%name%'。
Ⅳ SQL怎麼拼接字元串
不同的資料庫,相應的字元串拼接方式不同,通過對比加深一下記憶。
一、MySQL字元串拼接
1、CONCAT函數
語法格式:CONCAT(char c1, char c2, ..., char cn) ,其中char代表字元串,定長與不定長均可以
連接兩個字元串
(5)sqlconcat擴展閱讀
字元串函數(String processing function)也叫字元串處理函數,指的是編程語言中用來進行字元串處理的函數,如C,pascal,Visual以及LotusScript中進行字元串拷貝,計算長度,字元查找等的函數。
字元串主要用於編程,概念說明、函數解釋、用法詳述見正文,這里補充一點:字元串在存儲上類似字元數組,所以它每一位的單個元素都是可以提取的,如s=「abcdefghij」,則s[1]=「a」,s[10]="j"。
而字元串的零位正是它的長度,如s[0]=10(※上述功能Ansistring沒有。),這可以給我們提供很多方便,如高精度運算時每一位都可以轉化為數字存入數組。
字元串函數的應用
1、連接運算 concat(s1,s2,s3…sn) 相當於s1+s2+s3+…+sn.
例:concat(『11』,'aa』)='11aa』;
2、求子串。 Copy(s,I,I) 從字元串s中截取第I個字元開始後的長度為l的子串。
例:(『abdag』,2,3)=』bda』
3、刪除子串。過程 Delete(s,I,l) 從字元串s中刪除第I個字元開始後的長度為l的子串。
例:s:=』abcde』;delete(s,2,3);結果s:=』ae』
4、插入子串。 過程Insert(s1,s2,I) 把s1插入到s2的第I個位置
例:s:=abc;insert(『12』,s,2);結果s:=』a12bc』
5、求字元串長度 length(s) 例:length(『12abc』)=5
在ASP中 求字元串長度用 len(s)例: len("abc12")=5
6、搜索子串的位置 pos(s1,s2) 如果s1是s2的子串 ,則返回s1的第一個字元在s2中的位置,若不是子串,則返回0.
例:pos(『ab』,』12abcd』)=3
7、字元的大寫轉換。Upcase(ch) 求字元ch的大寫體。
例:upcase(『a』)=』A』
8、數值轉換為數串。 過程 Str(x,s) 把數值x化為數串s.
例:str(12345,s); 結果s=』12345』
9、數串轉換為數值。 過程val(s,x,I) 把數串s轉化為數值x,如果成功則I=0,不成功則I為無效字元的序數,第三個參數也可不傳
例:val(『1234』,x,I);結果 x:=1234
Ⅵ mysql中的concat用法!
這個sql語句是指從資料庫表裡面拼接組合goods_sn,goods_title,goods_brief,goods_name 有包含tablet欄位的數據。等價於goods_sn||goods_title||goods_brief||goods_name LIKE '%tablet%。
concat 等同於字元串連接符 ||,concat(字串1, 字串2, 字串3, ...),將字串1、字串2、字串3,等字串連在一起。
(6)sqlconcat擴展閱讀:
MySQL,Oracle,SQL Server拼接字元串查詢示例:
例子1:
MySQL:
SELECT CONCAT(region_name,store_name) FROM Geography WHERE store_name = 'Boston';
例子2:
Oracle:
SELECT region_name || ' ' || store_name FROM Geography WHERE store_name = 'Boston';
例子3:
SQL Server:
SELECT region_name + ' ' + store_name FROM Geography WHERE store_name = 'Boston';
Ⅶ Sql語句中查詢多列用concat和單個欄位用like,哪個效率高
這個要看情形,不能一概而論
like 如果是前幾個字元確定,是可以用到索引的,其他情形就不可以
多列concat可以考慮增加計算列(如果支持的話),然後添加索引
祝好運,望採納
Ⅷ Oracle SQL中的select concat顯示結果怎麼想我逗號一樣分段。
CREATEORREPLACEFUNCTIONfn_split(p_strINVARCHAR2,p_delimiterINVARCHAR2)
RETURNty_tbl_str_split
IS
jINT:=0;
iINT:=1;
lenINT:=0;
len1INT:=0;
strVARCHAR2(4000);
str_splitty_tbl_str_split:=ty_tbl_str_split();
BEGIN
len:=LENGTH(p_str);
len1:=LENGTH(p_delimiter);
WHILEj<lenLOOP
j:=INSTR(p_str,p_delimiter,i);
IFj=0THEN
j:=len;
str:=SUBSTR(p_str,i);
str_split.EXTEND;
str_split(str_split.COUNT):=ty_row_str_split(strValue=>str);
IFi>=lenTHEN
EXIT;
ENDIF;
ELSE
str:=SUBSTR(p_str,i,j-i);
i:=j+len1;
str_split.EXTEND;
str_split(str_split.COUNT):=ty_row_str_split(strValue=>str);
ENDIF;
ENDLOOP;
RETURNstr_split;
ENDfn_split;
使用樣例:
selectto_number(strvalue)asValuefromtable(fn_split('1,2,3',','))
selectto_char(strvalue)asValuefromtable(fn_split('aa,bb,cc',','))
Ⅸ sql 用concat連接的字元串作為列名
ORACLE?直接用就好了啊
SELECT SUM(CASE WHEN T1.ACCT_MONTH = TO_CHAR(ADD_MONTHS(TO_DATE('201202', 'YYYYMM'),
- (2 - 1)), 'YYYYMM')
THEN T1.USER_AVG_NUM ELSE 0 END) "USER_AVG_NUM_1"
FROM user_info T1
Ⅹ sqlite 含有concat函數嗎
http://www.sqlite.org/lang_corefunc.html
根據官方主頁目前沒有concat函數
有substr ,但是沒有concat
substr(X,Y,Z)
substr(X,Y) The substr(X,Y,Z) function returns a substring of input string X that begins with the Y-th character and which is Z characters long. If Z is omitted then substr(X,Y) returns all characters through the end of the string X beginning with the Y-th. The left-most character of X is number 1. If Y is negative then the first character of the substring is found by counting from the right rather than the left. If Z is negative then the abs(Z) characters preceding the Y-th character are returned. If X is a string then characters indices refer to actual UTF-8 characters. If X is a BLOB then the indices refer to bytes.