當前位置:首頁 » 存儲配置 » 存儲過程拼接

存儲過程拼接

發布時間: 2022-08-28 05:14:50

『壹』 sql server 的存儲過程字元串怎麼拼接的

你的問題,問的不是很清楚,你是想問,如果將查詢結果拼接為字元串嗎?

有兩種辦法,如果是拼接為一個字元串,可以用變數,如:

DECLARE@NamesVARCHAR(MAX)
SELECT@Names=ISNULL(@Names+',','')+t.nameFROMsys.tablesASt
SELECT@Names
--返回:spt_fallback_db,spt_fallback_dev,spt_fallback_usg,spt_monitor,MSreplication_options

如果是用SQL中,可以用xml path如:

SELECTSTUFF(
(SELECT','+t.nameFROMsys.tablesAStFORXMLPATH(''))
,1,1,'')
--返回spt_fallback_db,spt_fallback_dev,spt_fallback_usg,spt_monitor,MSreplication_options

『貳』 oracle 存儲過程拼接傳參問題!

你可以拼接'to_date(' || 字元串類型日期 || 『,YYYY-MM-DD HH24:MI:SS)』 || ....
日期格式可根據需要調整

『叄』 存儲過程中的字元串拼接問題

alter proc [dbo].[fun_query_pm]
@ii_pm_name varchar(20)
as
begin
declare @where varchar(20)
begin
set @where = 'missaka'
set @where = @where + @ii_pm_name
print @where
print @ii_pm_name
end
end
exec p_test '10011'

你把char換成varchar就可以顯示了,這主要是char是固定長度,當set @where='misaka'時,
實際上@where中的位元組段已經填滿,後面空的被空格字元填滿,所以當你再進行連接的時候就沒位置連了,
當然不能連接了。用varchar就不會了

『肆』 mysql存儲過程能不能直接執行拼接的sql語句

當然可以,就是在mysql存儲過程中使用動態sql,就可以拼接sql,然後執行了。


給你復制一段,如果不滿意,自己搜索 mysql存儲過程動態sql就可以了


;
CREATEPROCEDURESearchByDoctor(
INDoctorIdVARCHAR(50),
INdeptIdVARCHAR(50),
INbeginDateVARCHAR(20),
INendDateVARCHAR(20),
INStandDeptIdVARCHAR(50),
INOperationFlagVARCHAR(50),
INSsczflIdVARCHAR(50),
OUTOperNumINT,
OUTAvgDangerIndexDOUBLE,
OUTOperGrCaseINT
)
BEGIN
DECLAREcal1VARCHAR(800);
DECLAREcal2VARCHAR(800);

SETcal1="SELECTCOUNT(1),AVG(DANGER_INDEX)INTO@para1,@para2FROMyw_ssxxbWHERE1=1";
SETcal2="SELECTCOUNT(1)INTO@para3FROMgr_grbwWHEREOPE_RELIDIN(SELECTRELIDFROMyw_ssxxbWHERE1=1";
#拼接醫生id
SETcal1=CONCAT(cal1,"","ANDOPEDOC_ID=","'",DoctorId,"'");
SETcal2=CONCAT(cal2,"","ANDOPEDOC_ID=","'",DoctorId,"'");

#拼接科室id
IFdeptId<>''THEN
SETcal1=CONCAT(cal1,"ANDDEPT_ID=","'",deptId,"'");
ENDIF;
#拼接開始結束日期
IFbeginDate<>''ANDendDate<>''THEN
SETcal1=CONCAT(cal1,"","ANDOPER_ATBETWEEN","'",beginDate,"'","AND","'",endDate,"'");
ENDIF;

#拼接標准科室
IFStandDeptId<>''THEN
SETcal1=CONCAT(cal1,"","ANDDEPT_IDIN(_DEPT_ID=","'",StandDeptId,"'",")");
ENDIF;
#拼接數據來源
IFOperationFlag<>''THEN
SETcal1=CONCAT(cal1,"","ANDOPEPARTKINDIDIN(SELECTIDFROMzh_ssczflWHEREFLAG=","'",OperationFlag,"'",")");
ENDIF;
#拼接手術操作類別
IFSsczflId<>''THEN
SETcal1=CONCAT(cal1,"","ANDOPEPARTKINDID=","'",SsczflId,"'");
ENDIF;
SETcal2=CONCAT(cal2,")");
SET@sql1=cal1;
SET@sql2=cal2;
PREPAREstmt1FROM@sql1;
EXECUTEstmt1;
DEALLOCATEPREPAREstmt1;
PREPAREstmt2FROM@sql2;
EXECUTEstmt2;
DEALLOCATEPREPAREstmt2;
SETOperNum=@para1;
SETAvgDangerIndex=@para2;
SETOperGrCase=@para3;
END;

『伍』 存儲過程拼接問題

執行語句也需要作為字元串變數拼接後執行

createorreplaceprocereemplist(enameinvarchar,empcuroutsys_refcursor)
is
v_where_ddvarchar2(10000);
sqlstrvarchar2(10000);--增加這個
begin
ifenameisnotnullthen
v_where_dd:=v_where_dd||'andename='''||ename||'''';
endif
dbms_output.put_line(v_where_dd);
sqlstr:='selectempno,enamefromempwhere1=1'||v_where_dd;--增加這個
executeimmediatesqlstr;--執行
endemplist

『陸』 我想通過存儲過程將一個表查詢出來的多行結果,拼接成一條,如何實現 1 2 3 a 1 2 3 b 拼成 1 2 3 a b

其實這個可以用sql的自連接就可以解決了,不過用存儲過程也可以,思路差不多,首先你在if或者是while中判斷前三個欄位相等,如果相等就把後面的欄位進行拼接,用函數啊concat或者是||什麼的的,有一個關鍵的地方就是在判斷裡面加一個變數,這個變數就是以前三個欄位分組得到的最大值,比如:1,2,3,a ; 1,2,3,b ; 1,2,3,c ; 1,3,4,a ; 1,3,5,b ; 1,5,4,c ,明顯1,2,3分組得到為3,這個就決定你後面拼接的長度,這里拼出來是 1,2,3,a,b,c , 而後面的幾組明顯拼出來沒有那個長度,這時就需要用上面提到的變數,來做--操作,來使後面補上『』 。 不懂再問
還有 ,我建議這種專業的問題去專業的網站論壇上問,那邊的效率比較高,而且學到的東西也多些,比如csdn,itpub。。。。

『柒』 存儲過程拼接了兩個sql,如何執行;

這個是oracle的存儲過程。你只要在執行時候輸入參數_tableName,v_pkKey ,v_pkValue 的值就行了,它會自動順序執行的。

『捌』 SQL 執行存儲過程,字元串參數如何拼接

變數直接寫,要連接字元串的話,用
||
這個符號,後面的字元串用單引號引!
例如
變數
V_str
字元串'
select
emp
from
table
where
'
連接後為:
------------------------------------------------
'
select
emp
from
table
where
'
||
V_str
------------------------------------------------
希望可以幫助到你!

熱點內容
app上傳到安卓市場 發布:2025-03-19 19:20:06 瀏覽:802
sqlserver2005刪除 發布:2025-03-19 19:15:08 瀏覽:470
安卓p如何設置優化電池 發布:2025-03-19 19:15:04 瀏覽:117
本田凌派什麼配置值得買 發布:2025-03-19 19:08:48 瀏覽:273
北京電腦伺服器託管雲主機 發布:2025-03-19 19:08:00 瀏覽:382
越獄第三季ftp 發布:2025-03-19 19:02:11 瀏覽:40
我的卡密碼是多少 發布:2025-03-19 19:02:10 瀏覽:589
我的世界國際版純生存伺服器地址 發布:2025-03-19 18:39:31 瀏覽:503
php添加鍵值對 發布:2025-03-19 18:28:25 瀏覽:851
i5的什麼配置最強 發布:2025-03-19 18:13:56 瀏覽:278