sql tablosunda 1 alanda değerlerim var. Bu değerler önce harf sonra rakamlardan oluşmaktadır. a1256, ab235, bc4569 gibi
sql komutu ile verilerinbaşındaki harfleri nasıl temizleyebilirim. Harflerin kaç adet olduğu belli değil yani standart değil.
sql replace
Re: sql replace
s.a. biraz dedem usulü oldu ama çalışıyor.
tablo ismini ve kolon adını düzelt sol taraftaki sayı olmayan karakterleri siliyor... (Mutlaka yedek al sonra çalıştır)
Tablo Adı : ATEST
Tablodaki Kolon : AAA

tablo ismini ve kolon adını düzelt sol taraftaki sayı olmayan karakterleri siliyor... (Mutlaka yedek al sonra çalıştır)
Tablo Adı : ATEST
Tablodaki Kolon : AAA
Kod: Tümünü seç
DECLARE @AAA VARCHAR(30)
DECLARE @Ara Int
DECLARE CRS_ATEST CURSOR FOR SELECT AAA FROM ATEST
OPEN CRS_ATEST
FETCH NEXT FROM CRS_ATEST INTO @AAA
WHILE @@FETCH_STATUS =0
BEGIN
Set @Ara=33
WHILE @Ara NOT IN (48,49,50,51,52,53,54,55,56,57)
BEGIN
Set @Ara = ASCII(LEFT(@AAA,1))
if ASCII(LEFT(@AAA,1)) NOT IN (48,49,50,51,52,53,54,55,56,57)
BEGIN
SET @AAA=SUBSTRING(@AAA,2,DATALENGTH(@AAA))
END
UPDATE ATEST SET AAA = @AAA
WHERE CURRENT OF CRS_ATEST
END
FETCH NEXT FROM CRS_ATEST INTO @AAA
END
CLOSE CRS_ATEST
DEALLOCATE CRS_ATEST
Re: sql replace
Şuna benzer bir query de kullanabilirsin:
Kod: Tümünü seç
UPDATE TABLO
SET ALAN = CASE WHEN ISNUMERIC(ALAN) = 1 THEN ALAN
WHEN ISNUMERIC(SUBSTRING(ALAN, 2, 10)) = 1 THEN SUBSTRING(ALAN, 2, 10)
WHEN ISNUMERIC(SUBSTRING(ALAN, 3, 10)) = 1 THEN SUBSTRING(ALAN, 3, 10)
WHEN ISNUMERIC(SUBSTRING(ALAN, 4, 10)) = 1 THEN SUBSTRING(ALAN, 4, 10)
WHEN ISNUMERIC(SUBSTRING(ALAN, 5, 10)) = 1 THEN SUBSTRING(ALAN, 5, 10)
WHEN ISNUMERIC(SUBSTRING(ALAN, 6, 10)) = 1 THEN SUBSTRING(ALAN, 6, 10)
WHEN ISNUMERIC(SUBSTRING(ALAN, 7, 10)) = 1 THEN SUBSTRING(ALAN, 7, 10)
WHEN ISNUMERIC(SUBSTRING(ALAN, 8, 10)) = 1 THEN SUBSTRING(ALAN, 8, 10)
WHEN ISNUMERIC(SUBSTRING(ALAN, 9, 10)) = 1 THEN SUBSTRING(ALAN, 9, 10) ELSE ALAN END