programing

표에서 특정 열의 첫 번째 문자를 삭제하려면 어떻게 해야 합니까?

bestprogram 2023. 4. 7. 22:01

표에서 특정 열의 첫 번째 문자를 삭제하려면 어떻게 해야 합니까?

SQL에서 테이블 내의 특정 컬럼 값의 처음 4글자를 삭제하려면 어떻게 해야 합니까?열 이름은Student Code값의 예는 다음과 같습니다.ABCD123Stu1231모든 레코드에 대해 테이블에서 처음 4자를 삭제합니다.

안내 부탁드립니다

SELECT RIGHT(MyColumn, LEN(MyColumn) - 4) AS MyTrimmedColumn

편집: RIGHT는 2개의 인수를 사용합니다.즉, 동작하는 문자열(또는 열)과 반환하는 문자 수(문자열의 "오른쪽"에서 시작)입니다.LEN은 열 데이터의 길이를 반환하고 RIGHT 함수가 맨 왼쪽의 4자를 "뒤로" 남기도록 4를 뺍니다.

이게 말이 됐으면 좋겠어요.

다시 편집 - Andrew의 답변을 방금 읽었는데, 그가 정확하게 인터퍼트를 했을 수도 있고, 제가 틀렸을 수도 있습니다.이 경우(또한 조작된 결과만 반환하는 것이 아니라 테이블을 업데이트하려는 경우) 다음과 같이 수행할 수 있습니다.

UPDATE MyTable
SET MyColumn = RIGHT(MyColumn, LEN(MyColumn) - 4)

그는 올바른 방향으로 가고 있지만, 그의 솔루션은 위의 4자를 폐기하는 것이 아니라 문자열의 선두에 4자를 유지할 것입니다.

Stuff(someColumn, 1, 4, '')

이 말은 첫 번째부터 시작해서1문자 위치, 바꾸기4아무것도 없는 문자''

왜 LEN을 사용해서 2개의 문자열 기능을 가지고 있습니까?5번 캐릭터만 있으면...

...SUBSTRING (Code1, 5, 8000)...

이것을 시험해 보세요.

update table YourTable
set YourField = substring(YourField, 5, len(YourField)-3);

다음은 당신이 하려는 일의 간단한 목업입니다.

CREATE TABLE Codes
(
code1 varchar(10),
code2 varchar(10)
)

INSERT INTO Codes (CODE1, CODE2) vALUES ('ABCD1234','')


UPDATE Codes
SET code2 = SUBSTRING(Code1, 5, LEN(CODE1) -4)

따라서 트리밍할 필드에 대해 마지막 문을 사용합니다.

SUBSTRING 함수는 코드1을 잘라냅니다. FIFH 문자로 시작하여 CODE1에서 4를 뺀 길이(시작 시 건너뛴 문자 수) 동안 계속됩니다.

값의 길이가 4보다 작을 수 있는 경우에는 상위 답변이 적합하지 않습니다.

T-SQL에서

음수가 허용되지 않으므로 "Invalid length parameter passed to right function"이 표시됩니다.CASE 스테이트먼트를 사용합니다.

SELECT case when len(foo) >= 4 then RIGHT(foo, LEN(foo) - 4) else '' end AS myfoo from mytable;

포스트그레스

값이 4보다 작을 경우 문자열 전체가 아닌 첫 번째 문자를 잘라내기 때문에 오류 대신 다음과 같은 놀라운 동작이 나타납니다.사용하는 것이 더 합리적입니다.RIGHT(MyColumn, -5)대신.

상위 답변의 "-5" 대신 "length - 5"를 사용했을 때 표시되는 값을 비교하는 예:

create temp table foo (foo) as values ('123456789'),('12345678'),('1234567'),('123456'),('12345'),('1234'),('123'),('12'),('1'), ('');

select foo, right(foo, length(foo) - 5), right(foo, -5) from foo;

foo       len(foo) - 5  just -5   
--------- ------------  -------     
123456789 6789          6789 
12345678  678           678  
1234567   67            67   
123456    6             6    
12345                       
1234      234               
123       3                 
12                          
1                           

완전한 것

DECLARE @v varchar(10)

SET @v='#temp'

select STUFF(@v, 1, 1, '')
WHERE LEFT(@v,1)='#'

SQL에서도 이 작업을 수행할 수 있습니다.

substring(StudentCode,4,len(StudentCode))

구문

substring (ColumnName,<Number of starting Character which u want to remove>,<length of given string>)

이거 먹어봐.100% 동작

UPDATE Table_Name
SET RIGHT(column_name, LEN(column_name) - 1)

  

경우 DB2의 경우 DB2의 경우 DB2의 경우가 좋습니다.INSERT(someColumn, 1, 4, '')

Stuff는 DB2DB2에서되지 않습니다.

목적에 딱 맞는 트림 기능이 내장되어 있습니다.

SELECT trim(both 'ag' from 'asdfg');
btrim 
-------
 sdf
(1 riga)

http://www.postgresql.org/docs/8.1/static/functions-string.html

다음과 같은 특수 문자 앞에 있는 처음 몇 개의 문자를 삭제해야 하는 경우#이것은 좋은 방법입니다.

UPDATE tblInvalidID
SET [ColumnName] =stuff(ColumnName, 1, charindex('#', ColumnName), ' ') 

언급URL : https://stackoverflow.com/questions/982819/how-do-i-remove-the-first-characters-of-a-specific-column-in-a-table