模式匹配前5个字符的SQL

MJP*_*MJP 8 sql pattern-matching ansi-sql-92

我正在考虑一个SQL查询,它返回前5个字符匹配的列中的所有条目.有任何想法吗?我正在考虑任何前5个字符匹配的条目,而不是特定的条目.例如

HelloA
HelloB
ThereC
ThereD
Something
Run Code Online (Sandbox Code Playgroud)

将返回前四个条目:

HelloA
HelloB
ThereC
ThereD
Run Code Online (Sandbox Code Playgroud)

编辑:我使用SQL92所以不能使用左命令!

Fil*_*lva 10

试试这个 :

SELECT *
FROM YourTable
WHERE LEFT(stringColumn, 5) IN (
    SELECT LEFT(stringColumn, 5)
    FROM YOURTABLE
    GROUP BY LEFT(stringColumn, 5)
    HAVING COUNT(*) > 1
    )
Run Code Online (Sandbox Code Playgroud)

SQLFIDDLE DEMO

这将选择前5个字符,按组分组,并仅返回多次出现的字符.

或者使用子字符串:

SELECT * FROM YourTable 
WHERE substring(stringColumn,1,5) IN (
  SELECT substring(stringColumn,1,5)
  FROM YOURTABLE
GROUP BY substring(stringColumn,1,5)
HAVING COUNT(*) > 1)
;
Run Code Online (Sandbox Code Playgroud)

SQLFIDDLE DEMO


Tim*_*Tim 6

听起来很容易......

在SQL Server中,这将是一个类似的东西

where Left(ColumnName,5) = '12345'
Run Code Online (Sandbox Code Playgroud)