【SQLServer】 儲存過程中,使用IN函式
在儲存過程中使用IN函式,傳入多個引數時,會有問題,三種解決方案:
新增函式:
create FUNCTION [dbo].[Split2]
(
@RowData varchar(max),
@SplitOn varchar(1)
)
RETURNS @RtnValue table
(
Id int identity(1,1),
Data varchar(4000)
)
AS
BEGIN
Declare @Cnt int
Set @Cnt = 1
While (Charindex(@SplitOn,@RowData)>0 )
Begin
Insert Into @RtnValue (data)
Select
Data = ltrim(rtrim(Substring(@RowData,1,Charindex(@SplitOn,@RowData)-1)))
Set @RowData = Substring(@RowData,Charindex(@SplitOn,@RowData)+1,len(@RowData))
Set @Cnt = @Cnt + 1
End
Insert Into @RtnValue (data)
Select Data = ltrim(rtrim(@RowData))
Return
END
動態執行sql
EXEC('insert @TempTable select * from mytable where uid in ('[email protected]+')')
使用charindex代替,但是此種方案,我沒有測試成功,但是網上大部分人說,這個是可以的。所以這個有待商榷。
insert @TempTable select * from mytable where charindex(','+uid+',',''[email protected]+'')>0
相關推薦
【SQLServer】 儲存過程中,使用IN函式
在儲存過程中使用IN函式,傳入多個引數時,會有問題,三種解決方案: 新增函式: create FUNCTION [dbo].[Split2] ( @RowData varchar(max
【戶口篇】換房過程中,戶口怎麼遷移?
換房過程中,隨著房屋產權的變更,戶口面臨遷移的問題。 一、賣舊房換新房戶口遷出(新房未到遷戶口時間) 最常用的方法是:與買家協議遷戶時間延後,簽訂戶口遷出承諾書或支付遷戶保險金。 如果屆時買家遷入,您會被擠掉成為當地派出所集體戶口。 當然,也可以選擇在親戚朋友的房產上掛靠戶口。
MySQL儲存過程中的IN,OUT,INOUT型別 用法
MySQL儲存過程中有IN,OUT,INOUT型別 ----------------------------------- ## IN IN引數只用來向過程傳遞資訊,為預設值。 ## MySQL儲存過程"in"引數:跟C語言的函式引數的值傳遞類似,MySQL儲存過程內部
SQLserver 在儲存過程中建立函式,建立檢視
alter PROCEDURE usp_sumgoods(@supplierid VARCHAR(50)) as BEGIN if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GetM
【SQL】儲存過程
前言 儲存過程(Stored Procedure)是在大型資料庫系統中,一組為了完成特定功能的SQL 語句集 區別 觸發器與儲存過程的唯一區別是觸發器不能執行EXECUTE語句呼叫,而是在使用者執行Transact-SQL語句時自動觸發執行 作用
【DP】在矩陣中,選擇一條從左上角到右下角、經過數字之和最大的路徑
題目:EPI int max_fishing(vector<vector<int>> A) { if (A.empty() || A[0].empty()) throw new exception; for (int i = 0; i &l
在儲存過程中,關於出現null的問題
假設有一個表A,定義如下: create table A( id varchar2(50) primary key not null, vcount number(8) not null, bid varchar2(50) not null -- 外來鍵 );如果在儲存過程中
【Mybatis】為什麼mybatis中,插入引數時,佔位符裡面要寫jdbcType?
為什麼mybatis中,插入引數時,佔位符裡面要寫jdbcType? 最近一直很納悶,以前寫Mybatis,老師都沒有要求寫過jdbcType,也沒有出過什麼錯,而在公司,卻都寫了jdbcType,這個jdbcType為什麼都寫?是不是有什麼原因; 看了
【sql】-儲存過程實現迴圈遍歷一列資料
前言 專案中要實現前端頁面動態配置行為,每個行為呼叫不同的儲存過程的功能,於是乎小編一頭扎進了儲存過程的海洋中,愈發覺得之前寫的儲存過程算是基礎了。遇到一個問題:查詢到表中一列資料,需要取出每一行資料來執行下一個儲存過程。這可怎麼鬧?別急,小編來給
在儲存過程中,表記錄內容之間的複製
現在有表A,表B, 要把B表中的某條記錄取出來,然後選取指定的欄位複製到表A中,SQL語法如下declare @Id int @Id = SCOPE_IDENTITY() insert into T
【資料庫】 儲存過程
1.儲存過程是什麼? 百度百科:儲存過程(Stored Procedure)是在大型資料庫系統中,一組為了完成特定功能的SQL 語句集,儲存在資料庫中,經過第一次編譯後再次呼叫不需要再次編
【Java】Filter過濾器中,在chain.doFilter(request,response)後若有重定向或轉發語句
在chain.doFilter(request,response)後若有重定向或轉發語句,執行順序是: 1.所要訪問的資源不是轉發的目標資源: chain.doFilter(request,
【Unity3d】在Unity3d中,使用C#中訪問系統剪貼簿
直接上程式碼 public static class ClipboardHelper { private static PropertyInfo m_systemCopyBufferProperty = null; private static PropertyIn
MySQL儲存過程中,定義變數有兩種方式
MySQL儲存過程中,定義變數有兩種方式: 1.使用set或select直接賦值,變數名以 @ 開頭. 例如:set @var=1; 可以在一個會話的任何地方宣告,作用域是整個會話,稱為會話變數。
MySql儲存過程中的基本函式和需要用到的運算子
mysql儲存過程學習總結-操作符算術運算子+ 加 SET var1=2+2; 4- 減 SET var2=3-2; 1* 乘 SET var3=3*2; 6/ 除 SET var4=10/3; 3.3333DIV 整除 SET var5=10 DIV 3; 3% 取模 SET var6=10%3 ; 1比較
【廣州服務器回收】服務器維護過程中,你需要了解的5個小常識
windows ron 就是 圖片 渲染 天都 驚人的 領域 其他人 大多數人認為,服務器僅僅是升級後的臺式機。但任何在數據中心工作過的人都知道,它們的差別挺大的。 盡管web服務器每天都要承擔數百萬訪問者的負載,但對於普通用戶來說,它們仍然神秘莫測。以下是關於服務器你可能
【轉載】postgresql儲存過程中返回型別
前言 假如需要在pg上面寫儲存過程,那麼返回型別必定是一個疑問點。 一般而言,對於一個查詢語句,為了可以統一動態返回各種資料,我們是不會蠢到每一個儲存過程都額外編寫一個返回型別 譬如: (id,name,password) 之類的,所以在寫的時候肯定會考慮 setof record這個動
【面試題】多執行緒在執行過程中,某個執行緒執行時,突然釋放鎖。會發生的特殊狀態
一,背景 今天在刷面試題的時候,做到一道面試題,雖然看了答案,但有一個答案還是不理解。後來研究了一下,得到結論:執行緒拿到鎖進行執行時,哪怕獲得了CPU執行權,但是那個鎖不能丟失,它後面執行的過程都需要帶著鎖,才能往下繼續執行。 二,測試程式碼 /**
【maven】排除maven中jar包依賴的解決過程 例子:spring cloud啟動zipkin,報錯maven依賴jar包衝突 Class path contains multiple SLF4J bindings.
一直對於maven中解決jar包依賴問題的解決方法糾結不清: 下面這個例子可以說明一個很簡單的解決方法: 專案啟動報錯: Connected to the target VM, address: '127.0.0.1:59412', transport: 'sock
【mybatis】mybatis呼叫sqlserver儲存過程和表值函式
儲存過程和表值函式的區別 最簡單的區別是儲存過程是pr開頭的,而儲存過程是fn開頭的,表值函式返回的是一個表結構的結果。如果mybatis用呼叫儲存過程的方式去呼叫表值函式,就會丟擲以下的異常: exc