SQL 比較一個集合是否在另一個集合里存在的方法分享
更新時間:2011年11月15日 23:51:07 作者:
SQL 比較一個集合是否在另一個集合里存在的方法分享,需要的朋友可以參考下。
復(fù)制代碼 代碼如下:
DECLARE @c INT
DECLARE @c2 INT
SELECT @c = COUNT(1)
FROM dbo.SplitToTable('1|2|3|4', '|')
SELECT @c2=COUNT(1)
FROM dbo.SplitToTable('1|2|3|4', '|') a
INNER JOIN dbo.SplitToTable('1|2|3|', '|') b ON a.value = b.value
IF @c = @c2
SELECT 'ok'
ELSE
SELECT 'no'
SplitToTable這個函數(shù)如下:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER FUNCTION [dbo].[SplitToTable]
(
@SplitString NVARCHAR(MAX) ,
@Separator NVARCHAR(10) = ' '
)
RETURNS @SplitStringsTable TABLE
(
[id] INT IDENTITY(1, 1) ,
[value] NVARCHAR(MAX)
)
AS
BEGIN
DECLARE @CurrentIndex INT ;
DECLARE @NextIndex INT ;
DECLARE @ReturnText NVARCHAR(MAX) ;
SELECT @CurrentIndex = 1 ;
WHILE ( @CurrentIndex <= LEN(@SplitString) )
BEGIN
SELECT @NextIndex = CHARINDEX(@Separator, @SplitString,
@CurrentIndex) ;
IF ( @NextIndex = 0
OR @NextIndex IS NULL
)
SELECT @NextIndex = LEN(@SplitString) + 1 ;
SELECT @ReturnText = SUBSTRING(@SplitString,
@CurrentIndex,
@NextIndex - @CurrentIndex) ;
INSERT INTO @SplitStringsTable
( [value] )
VALUES ( @ReturnText ) ;
SELECT @CurrentIndex = @NextIndex + 1 ;
END
RETURN ;
END
相關(guān)文章
SQL Server正則表達式 替換函數(shù)應(yīng)用詳解
在sql開發(fā)過程中,經(jīng)常會使用正則,本文將以此問題進行詳細介紹SQL Server正則表達式 替換函數(shù)應(yīng)用,需要了解更多的朋友可以參考下2012-11-11
優(yōu)化SQL Server的內(nèi)存占用之執(zhí)行緩存
在論壇上常見有朋友抱怨,說SQL Server太吃內(nèi)存了。這里筆者根據(jù)經(jīng)驗簡單介紹一下內(nèi)存相關(guān)的調(diào)優(yōu)知識2012-04-04
Centos 7.3下SQL Server安裝配置方法圖文教程
這篇文章主要為大家詳細介紹了Centos 7.3下SQL Server安裝配置方法圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-08-08
SQL去除字符串空格的ltrim()和rtrim()函數(shù)的實現(xiàn)
SQL并不提供trim()函數(shù)去除字符串兩邊空格,只提供了去除字符串左邊空格ltrim()函數(shù)和去除右邊字符串空格rtrim()函數(shù),但是只要將這兩個函數(shù)配合使用,就能達到去除字符串兩端空格的效果,本文就來介紹一下這兩個函數(shù)的用法2023-11-11
清除SQL SERVER錯誤日志出現(xiàn)操作系統(tǒng)錯誤的解決方法
SQL Server 外部的進程可能會阻止 SQL Server 讀取這些文件。因此,錯誤日志條目可能已丟失,并且或許不可能查看某些 SQL Server 錯誤日志。請確保任何其他進程都未將該文件鎖定為只寫訪問2013-08-08
SQL Server 2012 安裝圖解教程(附sql2012下載地址)
在安裝微軟最新數(shù)據(jù)庫SQL Server 2012之前,編者先確定一下安裝環(huán)境:Windonws 7 SP1,32位操作系統(tǒng)、CPU是2.1GHz賽揚雙核T3500,內(nèi)存2.93GB2013-04-04

