sqlserver 函數


 sqlserver數據庫中字符串分割函數:

使用語句1查詢出來的結果為張三,李四,王五。這個receivername字段里存放了多個人的姓名。

1.select v.receivername from T_SimpleFlow_MainInfo  where v.id=52;

使用語句2查詢出來的結果是按 ‘,’ 分割之后的結果,顯示為3列 分別為 張三   李四   王五 。

2.select sp.value from T_SimpleFlow_MainInfo v
       cross  apply string_split(v.receivername,',') sp where v.id=52 ;

使用sql查詢為空時指定返回參數

語法:ISNULL ( check_expression , replacement_value )

check_expression** :將被檢查是否為 NULL的表達式。check_expression 可以是任何類型的。

replacement_value:在 check_expression 為 NULL時將返回的表達式。replacement_value 必須與check_expresssion 具有相同的類型。

select ISNULL(null, '456');     查詢結果為456

select ISNULL('123', '456');   查詢結果為123 

SQL LEN() 語法

 SELECT LEN(column_name) FROM table_name

select len(ISNULL(null, '456'));    查詢結果為3

select len(isnull('1234',''));          查詢結果為4

CONCAT 函數 和 CHARINDEX 的組合使用

一  concat()函數

1、功能:將多個字符串連接成一個字符串。

2、 語法1:concat(str1, str2,...),返回結果為連接參數產生的字符串沒有有分隔符

3.、語法2:concat(str1, seperator,str2,seperator,...),返回結果為連接參數產生的字符串並且有分隔符

select concat(列名稱,',','123') from tableName;

二 charindex()函數

一、語法
CHARINDEX ( char ,string, [  start_location ] )

char  一個表達式,其中包含要查找的字符的序列
string  一個表達式,通常是一個為指定序列搜索的列,string  屬於字符串數據類別。
start_location 開始在 string  中搜索 char  時的字符位置 

select * from tablename  where id=1  and  CHARINDEX('aaa', column)>0;

查詢列中column 是否包含'aaa' 字符串,存在的話>0 可以查詢出結果,如果不存在>0 則查不出結果(也可以使用=0)。

三 concat和charindex配合使用

update tableName set name=CONCAT(name, ',',#{name}) where id=#{id} and CHARINDEX(#{name},name)=0

這段sql的作用是:如果name中字段中已存在傳過來的用戶名(#{name})則不會再進行拼接name字段,如果name中的字段不存在傳過來的用戶名(#{name})則拼接name字段。

sql查詢語句 如果字段為空,則給定默認值

如果 數據庫中查詢出來的  nextActionName、backActionName、wasterActionName 字段為空,則顯示 提交、駁回、作廢。否則顯示從數據庫中查詢的數據進行顯示。

select
case when nextActionName is null then '提交' else nextActionName end as nextActionName,
case when backActionName is null then '駁回' else backActionName end as backActionName,
case when wasterActionName is null then '作廢' else wasterActionName end as wasterActionName
from Status where id=#{id} and StatusId = #{statusId}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM