sql >> Databasteknik >  >> RDS >> Sqlserver

sql server 2008:välj delsträng från ett fält

Dela upp det i två steg:

  1. kassera allt fram till början av numret (här antog jag minst 3 siffror)
  2. ta sedan allt upp till nästa icke-numeriska siffra

Du behöver ett CASE för VÄNSTER är numret i slutet eftersom PATINDEX returnerar noll

DECLARE @MyTable TABLE (bigstring varchar(200))
INSERT @MyTable VALUES ('F:\MassHunter\DATA\6897_Pan_1\QuantResults\6897_Pan_1.batch.bin')
INSERT @MyTable VALUES ('F:\MassHunter\DATA\6897_Pan_1\QuantResults\6897_Pan_1.batch.bin')
INSERT @MyTable VALUES ('10914_Excel Short Summary.xls')

SELECT  --assumes number not at end of string
    LEFT(startOf, PATINDEX('%[^0-9]%', startof)-1)
FROM
    (
    SELECT  --assumed 3 digits minimum
        SUBSTRING(bigstring, PATINDEX('%[0-9][0-9][0-9]%', bigstring), 8000) AS startOf
    FROM
        @MyTable
    ) foo



  1. Använder sp_help_jobschedule i SQL Server

  2. Skapa en postgresql DB med psycopg2

  3. Generera sql med subquery som en kolumn i select-satsen med SQLAlchemy

  4. Hur kan jag byta min Rails-app från Mysql till SQL Server i rails 4 i Windows