반응형
SQL Server에서 특정 문자 뒤에 문자열을 분할하고 이 값을 특정 열로 업데이트하는 방법
데이터가 있는 테이블이 있습니다.1/1
로.1/20
한 줄로'/'(프론트 슬래시)가 SQL Server의 동일한 테이블에 있는 다른 열로 업데이트된 후 값 1에서 20 사이의 값을 원합니다.
예:
열에 값이 있음1/1,1/2,1/3...1/20
새 열 값1,2,3,..20
즉, 이 새 열을 업데이트하고자 합니다.
사용해 보십시오.
UPDATE YourTable
SET Col2 = RIGHT(Col1,LEN(Col1)-CHARINDEX('/',Col1))
아래 쿼리를 찾아 delimeter로 문자열을 분할하십시오.
Select Substring(@String1,0,CharIndex(@delimeter,@String1))
보낸 사람: http://www.sql-server-helper.com/error-messages/msg-536.aspx
모든 데이터가 '1/12' 형식이 아닌 경우 LEFT 기능을 사용하려면 위의 두 번째 줄에 이 기능이 필요합니다.
Set Col2 = LEFT(Col1, ISNULL(NULLIF(CHARINDEX('/', Col1) - 1, -1), LEN(Col1)))
SELECT SUBSTRING(ParentBGBU,0,CHARINDEX('-',ParentBGBU,0)) FROM dbo.tblHCMMaster;
이 질문이 sql 서버에만 한정되어 있다는 것을 알지만, 저는 postgresql을 사용하고 있고 이 질문을 우연히 발견했습니다. 그래서 비슷한 상황에 있는 다른 사람들에게는 다음과 같은 것이 있습니다.split_part(string text, delimiter text, field int)
기능.
아마도 이런 것들이 있을 것입니다.
먼저 일부 테스트 데이터:
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
SELECT emp.LoginID, emp.JobTitle, emp.BirthDate, emp.ModifiedDate ,
CASE WHEN emp.JobTitle NOT LIKE '%Document Control%' THEN emp.JobTitle
ELSE SUBSTRING(emp.JobTitle,CHARINDEX('Document Control',emp.JobTitle),LEN('Document Control'))
END
,emp.gender,emp.MaritalStatus
FROM HumanResources.Employee [emp]
WHERE JobTitle LIKE '[C-F]%'
사용하다CHARINDEX
사용자 기능을 만들 수도 있습니다.이 스플릿을 자주 사용한다면요.
다음 함수를 만듭니다.
CREATE FUNCTION [dbo].[Split]
(
@String VARCHAR(max),
@Delimiter varCHAR(1)
)
RETURNS TABLE
AS
RETURN
(
WITH Split(stpos,endpos)
AS(
SELECT 0 AS stpos, CHARINDEX(@Delimiter,@String) AS endpos
UNION ALL
SELECT endpos+1, CHARINDEX(@Delimiter,@String,endpos+1)
FROM Split
WHERE endpos > 0
)
SELECT 'INT_COLUMN' = ROW_NUMBER() OVER (ORDER BY (SELECT 1)),
'STRING_COLUMN' = SUBSTRING(@String,stpos,COALESCE(NULLIF(endpos,0),LEN(@String)+1)-stpos)
FROM Split
)
GO
언급URL : https://stackoverflow.com/questions/9260044/how-to-split-a-string-after-specific-character-in-sql-server-and-update-this-val
반응형
'programing' 카테고리의 다른 글
도커 컨테이너 로그를 단일 파일로 리디렉션하는 방법은 무엇입니까? (0) | 2023.08.05 |
---|---|
process.env의 값을 변경하는 방법.node.js의 PORT? (0) | 2023.08.05 |
보기 찾기 기준ID가 null을 반환합니다. (0) | 2023.08.05 |
jquery가 로드될 때까지 스크립트 실행을 대기시키는 방법 (0) | 2023.08.05 |
노드 패키지(Grunt)가 설치되었지만 사용할 수 없음 (0) | 2023.08.05 |