[英]SQL Select Statement LIKE IN
我需要編寫一條select語句,該語句返回一個用戶列表,該用戶列表中存在一個名為constraint_values的字段,其中包含SenderSubID的列表:
我理想地需要一個LIKE IN語句:
SELECT SenderSubID FROM fix_user_subids WHERE SenderSubID IN ('**00390529MGERAN1**','**00912220PBALDIS**','**03994113LDAMBRO**','**04004308SLOMBAR**','**04935278CARELLI**','**4004308SLOMBARD**')
SELECT * FROM fix_dyno_rule_defs WHERE constraint_values LIKE '%**00390529MGERAN1**%'
返回值:
rule_def_id tag msg_type required constraint_values constraint_type data_type default_value validation_type trans_type attribute_tag trans_tag memo 99800 10000 D,F,G 0 ((50,4,1, 00390529MGERAN1 )or(50,4,1,00912220PBALDIS)or(50,4,1,03994113LDAMBRO)or(50,4,1,04004308SLOMBAR)or(50,4,1,04935278CARELLI)or(50,4,1,4004308SLOMBARD))and(21,4,1,3)#STROP1#addattr(EQD,EQST) 0 1 #TAG=6506# 12 1800 0 0 Set EQD=1 for Equity Desk
我這樣寫:
SELECT * FROM fix_dyno_rule_defs WHERE constraint_values LIKE '%' + (SELECT MAX(SenderSubID) FROM fix_user_subids WHERE SenderSubID IN ('00390529MGERAN1','00912220PBALDIS','03994113LDAMBRO','04004308SLOMBAR','04935278CARELLI','4004308SLOMBARD')) +'%'
但是需要它而不需要MAX,因為有一個列表...
您沒有理想。 使用or
:
SELECT SenderSubID
FROM fix_user_subid
WHERE SenderSubID like '%00390529MGERAN1%' OR
SenderSubID like '%00912220PBALDIS%' OR
SenderSubID like '%04004308SLOMBAR%' OR
SenderSubID like '%04935278CARELLI%' OR
SenderSubID like '%4004308SLOMBARD%'
如果我正確地閱讀了您的問題(可能不是!),您正在尋找從表fix_dyno_rule_defs獲得結果的方法。
在這種情況下,您不能只是簡單地加入嗎?
即:
SELECT DISTINCT fdrd.*
FROM fix_dyno_rule_defs fdrd
JOIN fix_user_subid fus
ON fdrd.constraint_values LIKE '%' + REPLACE(fus.SenderSubID, '*','') + '%'
WHERE fus.SenderSubID IN ('**00390529MGERAN1**','**00912220PBALDIS**',
'**03994113LDAMBRO**','**04004308SLOMBAR**',
'**04935278CARELLI**','**4004308SLOMBARD**')
/ 這應該可以幫助您嘗試聲明一個臨時表並將所有ID存儲在其中 /
declare @tempSenderIDs Table(
T_TableID varchar(10)
)
insert into @tempSender
(
T_TableID
)
values
select
senderSubID
from
SenderSubIDs
/ 最終結果將來自這里 /
select
f.SenderSubIDs
from
fix_user_subid f
where
s.ConstraintValue like '%' + (select T_TableID from @tempSenderIDs) +'%'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.