web-dev-qa-db-ja.com

SQL Serverで特定の文字の後に文字列を分割し、この値を特定の列に更新する方法

1つの列に1/1から1/20のデータを持つテーブルがあります。値1から20、つまり '/'(フロントスラッシュ)がSQL Serverの同じテーブルの他の列に更新された後の値が必要です。

例:

列の値は1/1,1/2,1/3...1/20です
新しい列の値1,2,3,..20

つまり、この新しい列を更新したい

前もって感謝します...!

37
SHEKHAR SHETE

これを試して:

UPDATE YourTable
SET Col2 = RIGHT(Col1,LEN(Col1)-CHARINDEX('/',Col1))
89
Lamak

以下のクエリも、区切り文字で文字列を分割してください。

Select Substring(@String1,0,CharIndex(@delimeter,@String1))
9
user5151121
SELECT SUBSTRING(ParentBGBU,0,CHARINDEX('-',ParentBGBU,0)) FROM dbo.tblHCMMaster;
2
Ankur Shah

私はこの質問がSQLサーバーに固有であることを知っていますが、私はpostgresqlを使用していてこの質問に出くわしたので、同様の状況の他の人にはsplit_part(string text, delimiter text, field int)関数があります。

1
mbarkhau

たぶんこのようなもの:

最初にいくつかのテストデータ:

DECLARE @tbl TABLE(Column1 VARCHAR(100))

INSERT INTO @tbl
SELECT '1/1' UNION ALL
SELECT '1/20' UNION ALL
SELECT '1/2'

次に、このように:

SELECT
    SUBSTRING(tbl.Column1,CHARINDEX('/',tbl.Column1)+1,LEN(tbl.Column1))
FROM
    @tbl AS tbl
1
Arion