SQL - функция подстроки - число параметров? - PullRequest
1 голос
/ 04 марта 2020

Клиент дал мне задание посмотреть, что не так с его большим запросом, почему он не работает. Я обнаружил ошибку: это в этой части запроса:

and value <> substring(value2, 4)

Когда я ставлю это, запрос работает так, как хочет клиент:

and value <> substring(value2, 5)

Однако я гуглил что substring в SQL означает и нашел эту статью:

https://www.sqlservertutorial.net/sql-server-string-functions/sql-server-substring-function/

Но здесь у нас есть два параметра внутри substring, и клиент использует только два. Итак, кто-то может объяснить разницу или направить меня в статью, где я могу найти ответ?

1 Ответ

0 голосов
/ 04 марта 2020

В базах данных, которые принимают двухстороннюю форму подстроки, подстрока принимает от второго аргумента до конца строки. Счет начинается с 1, а не 0, поэтому substring(value, 1) в этих базах данных извлекает всю строку.

При трех аргументах положительный третий аргумент всегда имеет длину. Я не припоминаю, если в каких-либо базах данных разрешен отрицательный третий аргумент.

SQL Серверу требуется три аргумента.

...