Функция замены SQL - PullRequest
       11

Функция замены SQL

2 голосов
/ 22 июня 2011

Я хотел бы заменить символы в моем операторе WHERE, которые имеют первый символ S,

, сейчас все, что у меня есть, это:S с U's.Я просто хочу заменить S на U только тогда, когда S - первый символ

спасибо!

Ответы [ 3 ]

4 голосов
/ 22 июня 2011
WHERE i1.CODE = REPLACE(LEFT(i2.CODE,1), 'S', 'U') + RIGHT(i2.CODE, LEN(i2.CODE)-1)
2 голосов
/ 22 июня 2011
Where i1.Code = Case
                    When Substring( i2.Code, 1, 1) = 'S' 
                        Then 'U' + Substring( i2.Code, 2, Len( i2.Code ) )
                    Else i2.Code
                    End

Другая альтернатива:

Where i1.Code = Case
                    When i2.Code Like 'S%'
                        Then 'U' + Substring( i2.Code, 2, Len( i2.Code ) )
                    Else i2.Code
                    End

Как предложил ErikE, вы также можете заменить Len(i2.Code) на произвольно большое статическое значение, которое может привести к небольшому улучшению скорости.

1 голос
/ 22 июня 2011

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Это действительно, действительно ужасно, но я думаю, что это работает.

...