SQL 从 WHERE 中排除通配符
SQL exclude wildcard from WHERE
我们有一个关于 SAP 的查询,它可能会导致问题。
SELECT
T2.[DistNumber], T1.[ItemCode], T0.[ItemName], T0.[CardName], T2.[InDate], T1.[Quantity]
FROM OITL T0 INNER JOIN ITL1 T1 ON T0.[LogEntry] = T1.[LogEntry], OBTN T2
WHERE T2.[DistNumber] =[%0]
有人将通配符 (%) 放入提示中,当然一切都被堵塞了。
有没有办法禁止 WHERE 中的通配符,也许是用 CASE 之类的?
我唯一能想出的其他选择是只 select 前 1000 名或其他,但我想知道是否有更好的方法。
非常感谢。
你能像下面这样在 WHERE 子句中删除它吗?
SELECT
T2.[DistNumber], T1.[ItemCode], T0.[ItemName], T0.[CardName], T2.[InDate], T1.[Quantity]
FROM OITL T0 INNER JOIN ITL1 T1 ON T0.[LogEntry] = T1.[LogEntry], OBTN T2
WHERE T2.[DistNumber] =replace([%0],'%','')
我们有一个关于 SAP 的查询,它可能会导致问题。
SELECT
T2.[DistNumber], T1.[ItemCode], T0.[ItemName], T0.[CardName], T2.[InDate], T1.[Quantity]
FROM OITL T0 INNER JOIN ITL1 T1 ON T0.[LogEntry] = T1.[LogEntry], OBTN T2
WHERE T2.[DistNumber] =[%0]
有人将通配符 (%) 放入提示中,当然一切都被堵塞了。
有没有办法禁止 WHERE 中的通配符,也许是用 CASE 之类的? 我唯一能想出的其他选择是只 select 前 1000 名或其他,但我想知道是否有更好的方法。
非常感谢。
你能像下面这样在 WHERE 子句中删除它吗?
SELECT
T2.[DistNumber], T1.[ItemCode], T0.[ItemName], T0.[CardName], T2.[InDate], T1.[Quantity]
FROM OITL T0 INNER JOIN ITL1 T1 ON T0.[LogEntry] = T1.[LogEntry], OBTN T2
WHERE T2.[DistNumber] =replace([%0],'%','')