【问题标题】:Search for comma values inside query?在查询中搜索逗号值?
【发布时间】:2025-11-21 10:00:05
【问题描述】:

我如何搜索一个值说

23,000

在 SQL Server 2008 R2 中的 VARBINARY(MAX) 文件流列上?这行不通

SELECT * FROM dbo.tbl_Files WHERE CONTAINS(SystemFile, '%[23,000]%');

【问题讨论】:

    标签: sql-server sql-server-2008 full-text-search


    【解决方案1】:

    我认为它只是你有% 和全文搜索使用 *

    select
    *
    from tbl_Files
    Where contains(SystemFile, '"*23,000*"')
    

    我有一个包含电话号码的全文索引,这也有效

    select
    *
    from tbl_Files
    Where contains(SystemFile, '0116')
    

    【讨论】:

    • 想通了,使用 '"1,102,942,489'" 而不是通配符 '' 解决了这个问题。您使用“''”的任何原因?
    • " 是 FTS 中的文本分隔符
    • 我没有使用 asterik *.你为什么用星号?它是 FTS 的通配符运算符吗?
    • Asterisk 是通配符运算符 - blogs.msdn.com/b/sqlforum/archive/2011/02/28/…
    【解决方案2】:
    SELECT * FROM dbo.tbl_Files WHERE CAST(SystemFile AS NVARCHAR) LIKE '%23,000%'
    

    【讨论】:

      【解决方案3】:

      请试试这个:

      select * from  dbo.tbl_Files where   CAST(SystemFile as int)  like '%23000%'
      

      如果您有一个列的VARBINARY 数据类型,那么您应该必须CAST 该值,因为它在表中存储为二进制值。

      【讨论】:

      • 感谢您的回复。查询返回 null 但搜索字符串存在。
      • 嗨,Damien,您正在寻找存储二进制数据的 VARBINARY(MAX) 字段中的特定值。或者您需要原始值作为“23000”。并在表中以二进制形式存储为 '0x000059D8'
      • 我正在寻找文件中的匹配值,例如 23,000 以及逗号分隔符。
      • 试试这个:SELECT * FROM dbo.tbl_Files WHERE cast(SystemFile as varchar) like '%23,000%'
      【解决方案4】:

      试试这个: SELECT * FROM dbo.tbl_Files WHERE cast(SystemFile as varchar) like '%23,000%'

      【讨论】: