淺析SQLServer中的Scanf與Printf
1、xp_sscanf,用它可以分解格式相對(duì)固定的字符串,這對(duì)于厭倦使用一堆substring和charindex的朋友來(lái)說(shuō)不錯(cuò)。比如前幾天的一個(gè)帖子中提出的如何分解ip地址,相對(duì)簡(jiǎn)練且通用的代碼應(yīng)該是下面這樣
if (object_id ('f_getip' ) is not null )
drop function f_getip
go
create function dbo . f_getip (@ ip varchar (100 ))
returns @ t table (a int , b int , c int , d int )
as
begin
set @ ip = replace (@ ip , '.' , ' ' )
declare
@ s1 varchar (3 ) , @ s2 varchar (3 ),
@ s3 varchar (3 ) , @ s4 varchar (3 )
exec xp_sscanf @ ip , '%s %s %s %s' , @ s1 output , @ s2 output , @ s3 output , @ s4 output
insert into @ t select @ s1 , @ s2 , @ s3 , @ s4
return
end
go
select * from dbo . f_getip ('192.168.0.1' )
go
/*
a b c d
----------- ----------- ----------- -----------
192 168 0 1
*/
2、xp_sprintf,用它可以拼接出一個(gè)字符串而不用擔(dān)心過(guò)多的加號(hào)很引號(hào)難以控制,比如一個(gè)動(dòng)態(tài)執(zhí)行sql語(yǔ)句的存儲(chǔ)過(guò)程
if (object_id ('p_select' ) is not null )
drop proc p_select
go
create proc p_select (@ tb varchar (100 ), @ cols varchar (100 ), @ wherecol varchar (100 ), @ value varchar (100 ))
as
begin
declare @ s varchar (8000 )
exec xp_sprintf @ s output , 'select %s from %s where %s=''%s''' , @ cols , @ tb , @ wherecol , @ value
exec (@ s)
end
go
exec p_select 'sysobjects' , 'id,xtype,crdate' , 'name' , 'p_select'
/*
id xtype crdate
----------- ----- -----------------------
898102240 P 2009-08-18 03:01:51.153
*/
相關(guān)文章
使用SQL實(shí)現(xiàn)車(chē)流量的計(jì)算的示例代碼
本文主要介紹了使用SQL實(shí)現(xiàn)車(chē)流量的計(jì)算的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02SQL where條件和jion on條件的詳解及區(qū)別
這篇文章主要介紹了SQL where條件和jion on條件的詳解及區(qū)別的相關(guān)資料,這里舉例說(shuō)明該如何區(qū)分,需要的朋友可以參考下2016-12-12idea連接sql?sever2019圖文教程(超詳細(xì))
這篇文章主要介紹了idea連接sql?sever2019的圖文教程,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-04-04asp.net連接查詢(xún)SQL數(shù)據(jù)庫(kù)并把結(jié)果顯示在網(wǎng)頁(yè)上(2種方法)
使用C#連接SQL數(shù)據(jù)庫(kù),并使用SQL語(yǔ)句查詢(xún),摸索了兩天終于運(yùn)行起來(lái)了,接下來(lái)為大家分享下兩種連接方法,感興趣的朋友可以參考下哈,希望可以幫助到你2013-04-04SqlServer批量備份多個(gè)數(shù)據(jù)庫(kù)且刪除3天前的備份
這篇文章主要介紹了SqlServer批量備份多個(gè)數(shù)據(jù)庫(kù)且刪除3天前的備份,需要的朋友可以參考下2017-09-09關(guān)于SQL Server加密與解密的問(wèn)題
這篇文章主要介紹了SQL Server加密與解密的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01SqlServer參數(shù)化查詢(xún)之where in和like實(shí)現(xiàn)詳解
若有一天你不可避免的需要提高SQL的查詢(xún)性能,需要一次性where in 幾百、上千、甚至上萬(wàn)條數(shù)據(jù)時(shí),參數(shù)化查詢(xún)將是必然進(jìn)行的選擇2012-05-05SQL高級(jí)應(yīng)用之使用SQL查詢(xún)Excel表格數(shù)據(jù)的方法
本文和大家講下如何在SQL Server分析器中查詢(xún)Excel電子表格的數(shù)據(jù),其實(shí)很簡(jiǎn)單的,來(lái)看下下面的SQL語(yǔ)句吧。2010-03-03