-1

今日はかなりシンプルなはずです。契約のリストを含む列があります。

ここに画像の説明を入力

ご覧のとおり、契約によっては末尾に「-....」が付いているものがあります。これとその後の文字を削除する必要があります (目的の出力を参照してください)。残念ながら、それは 1 文字だけではありません (複数の / 異なる # である可能性があります)。したがって、right/len/search の組み合わせになると思います。

考え?

4

2 に答える 2

0

コントラクトがすべて同じ形式である場合、以下は、必要なことを行うためのほぼ標準的な SQL です。

select (case when CTNumber like '%-%-%'
             then left(CTNumber, 7)
             else CTNumber
        end) as DesiredOutput
from t

like構文は標準であり、標準caseであり、ほとんどのデータベースにはleft()機能があります。これは、CTNumber の形式が、常に最初の 7 文字が必要な形式であることを前提としています。

于 2013-06-19T15:02:16.330 に答える
0

patindex2 つのダッシュの存在を確認するために使用できます。doublecharindexを使用すると、文字列の 2 番目のダッシュの前の部分を返すことができます。

select  case 
        when patindex('%-%-%', col1) > 0 then
            left(col1, charindex('-', col1, charindex('-', col1) + 1) - 1)
        else col1
        end as col1
from    dbo.YourTable
于 2013-06-19T14:46:43.827 に答える