【问题标题】:Filtering for a specific character in the middle of a reference - TSQL过滤引用中间的特定字符 - SQL
【发布时间】:2025-12-07 15:45:01
【问题描述】:

伙计们,我正在尝试创建一个查询来识别具有特定参考号或字母字符 _ 的订单。

此查询正在返回结果,但也显示了一些其他类似的结果:

SELECT DISTINCT 
    O.ordernumber, R.refnumber 'PO Reference', I.invstatus 'InvoicStatus',
    O.ord_invoicestatus
FROM 
    reference R 
INNER JOIN 
    order O ON R.ordernumber = O.ordernumber
LEFT JOIN 
    invoice I ON I.ordernumber = O.ordernumber
WHERE 
    R.ref_num LIKE '%X_%'
    AND R.reftype = 'PO' 
    AND o.obillto LIKE 'LO%'
ORDER BY 
    2

屏幕截图中突出显示的部分是我不想在我的结果集中找到的部分。

有什么建议吗?

谢谢!

【问题讨论】:

    标签: sql-server tsql sql-like


    【解决方案1】:

    下划线是 TSQL 中的通配符,类似于 % 但仅用于一个字符。

    您必须转义下划线,SQL Server Escape an Underscore 与一些示例类似。

    【讨论】:

    • 谢谢。正是我想要的:LIKE '%[_]%'
    【解决方案2】:

    改变这个:

    WHERE 
        R.ref_num LIKE '%X_%'
    

    WHERE 
        R.ref_num LIKE '%X[_]%'
    

    【讨论】:

      最近更新 更多