我想做一個查詢,結果與下面顯示的結果相同,但我只需要在 SET 陳述句中插入前 4 位數字,即“Set $campaignNo = '0029'”有什么方法可以填寫像這樣的字串陳述句中的通配符?
declare @campaignNo varchar(60)
set @campaignNo = '0029_old_Leu_2021_1'
Select Count(PUR1.intTimestamp) AS #start
From [MicrobialScreening].[dbo].[PUR_IDs] as ID
INNER JOIN [MicrobialScreening].[dbo].[PUR_Purification1] AS PUR1
ON id.intID=pur1.intID
where id.strCampaign = @campaignNo
uj5u.com熱心網友回復:
也許LIKE是你想要的:
declare @campaignNo varchar(60)
set @campaignNo = '0029'
Select Count(PUR1.intTimestamp) AS #start
From [MicrobialScreening].[dbo].[PUR_IDs] as ID
INNER JOIN [MicrobialScreening].[dbo].[PUR_Purification1] AS PUR1
ON id.intID=pur1.intID
where id.strCampaign like @campaignNo '%'
uj5u.com熱心網友回復:
如果廣告系列編號是固定寬度(如初始問題中所述的前四個),您可以使用LEFT函式。
set @campaignNo = '0029'
...
where LEFT(id.strCampaign, 4) = @campaignNo
對于更復雜的決議,您可以使用SUBSTRING或LIKE。如果您使用下劃線來決議LIKE,請確保使用ESCAPE關鍵字以避免歧義。
where id.strCampaign = LIKE CONCAT(@campaignNo, '\_%') ESCAPE '\'
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/327553.html
標籤:sql sql-server 宣布
下一篇:通過排序和過濾洗掉重復項
