【问题标题】:Trim everything after symbol and also search for other fields SQL修剪符号后的所有内容并搜索其他字段 SQL
【发布时间】:2015-12-04 08:15:11
【问题描述】:

我需要从中提取信息的数据库中有许多字段。名称列的数据格式如下:

Jim John - 1234567

我只想要名称部分,因此从“-”开始修剪所有内容。我已经尝试了以下

"SELECT REPLACE(LEFT(name, CHARINDEX('-',name)-1),'_',' '), othername, streetname, postal, 
                                        nameID, helper, helperID

        FROM [DATABASE].[dbo].[nameDB] with (nolock) 

        WHERE
              (othername like '" & txtSearch.Text & "' 
               or postal like '" & txtSearch.Text & "') 
               and (postal not like '%Error%' 
               and postal not like '%nas_admin%'
               and postal not like '%NASAdmin%'
               and postal like '[A-z][A-z][A-z]%')"

这个不行,我可以修剪数据,也可以在其他字段中搜索其他数据吗?

感谢您的帮助

【问题讨论】:

  • 请标记使用的 dbms。 (那里有一些非 ANSI SQL...)

标签: sql sql-server vb.net string-function


【解决方案1】:

使用Substring试试这个

  SELECT 
    SUBSTRING(name, 0, CHARINDEX('-', name)) AS [name] , othername, streetname, postal, 
                                        nameID, helper, helperID

        FROM [ARDVARC].[dbo].[nameDB] with (nolock) 

        WHERE
              (othername like '" & txtSearch.Text & "' 
               or postal like '" & txtSearch.Text & "') 
               and (postal not like '%Error%' 
               and postal not like '%nas_admin%'
               and postal not like '%NASAdmin%'
               and postal like '[A-z][A-z][A-z]%')"

希望这会有所帮助。

【讨论】:

  • 说我也想对 OTHERNAME 字段执行此操作,我是否只需复制相同的代码并在之后添加?
【解决方案2】:
  SELECT 
        PARSENAME(REPLACE('Jim John - 1234567','-','.'),2)

结果:

name      
--------- 
Jim John  

所以你可以把它当作

SELECT 
     PARSENAME(REPLACE(NAME, '-', '.'), 2) NAME
    ,PARSENAME(REPLACE(othername, '-', '.'), 2) othername
    ,streetname
    ,postal
    ,nameID
    ,helper
    ,helperID
FROM [DATABASE].[dbo].[nameDB] WITH (NOLOCK)
WHERE ...

Parsename(),Replace()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-07
    • 1970-01-01
    • 2014-06-07
    相关资源
    最近更新 更多