loading..
Русский    English
05:23
листать

Функция LEFT

Функция имеет следующий синтаксис:

  1. LEFT(строковое выражение, целочисленное выражение)
и вырезает заданное вторым аргументом число символов слева из строки, являющейся первым аргументом. Итак,

Консоль
Выполнить
  1. SELECT DISTINCT LEFT(name, 1)
  2. FROM Ships
  3. ORDER BY 1

А вот как, например, можно получить таблицу кодов всех алфавитных символов:

Консоль
Выполнить
  1. SELECT CHAR(ASCII('a')+ num-1) letter, ASCII('a')+ num - 1 [code]
  2. FROM (SELECT 5*5*(a-1)+5*(b-1) + c AS num
  3. FROM (SELECT 1 a UNION ALL SELECT 2 UNION ALL SELECT 3
  4. UNION ALL SELECT 4 UNION ALL SELECT 5
  5. ) x CROSS JOIN
  6. (SELECT 1 b UNION ALL SELECT 2 UNION ALL SELECT 3
  7. UNION ALL SELECT 4 UNION ALL SELECT 5
  8. ) y CROSS JOIN
  9. (SELECT 1 c UNION ALL SELECT 2 UNION ALL SELECT 3
  10. UNION ALL SELECT 4 UNION ALL SELECT 5
  11. ) z
  12. ) x
  13. WHERE ASCII('a')+ num -1 BETWEEN ASCII('a') AND ASCII('z')

Здесь используется алгоритм генерации числовой последовательности, изложенный в главе 8.

Как известно, коды строчных и прописных букв отличаются. Поэтому, чтобы получить полный набор без переписывания запроса, достаточно просто дописать к вышеприведенному коду аналогичный:

  1. UNION
  2. SELECT CHAR(ASCII('A')+ num-1) letter, ASCII('A')+ num - 1 [code]
  3. FROM (SELECT 5*5*(a-1)+5*(b-1) + c AS num
  4. FROM (SELECT 1 a UNION ALL SELECT 2 UNION ALL SELECT 3
  5. UNION ALL SELECT 4 UNION ALL SELECT 5
  6. ) x CROSS JOIN
  7. (SELECT 1 b UNION ALL SELECT 2 UNION ALL SELECT 3
  8. UNION ALL SELECT 4 UNION ALL SELECT 5
  9. ) y CROSS JOIN
  10. (SELECT 1 c UNION ALL SELECT 2 UNION ALL SELECT 3
  11. UNION ALL SELECT 4 UNION ALL SELECT 5
  12. ) z
  13. ) x
  14. WHERE ASCII('A')+ num -1 BETWEEN ASCII('A') AND ASCII('Z')

Чтобы таблица выглядела более патриотично, достаточно заменить латинские буквы a и A на неотличимые на вид русские — а и А, а z и Z на я и Я. Вот только буквы «ё» вы не увидите в этой таблице, так как в кодовой таблице ASCII эти символы лежат отдельно, что легко проверить:

Консоль
Выполнить
  1. SELECT ASCII('ё')
  2. UNION ALL
  3. SELECT ASCII('Ё')

Полагаем, что для вас не составит сложности добавить эту букву в таблицу при необходимости.

Рассмотрим теперь задачу определения нахождения искомой подстроки в строковом выражении. Для этого могут использоваться две функции — CHARINDEX и PATINDEX. Обе они возвращают начальную позицию (позицию первого символа подстроки) подстроки в строке.


  • Дженерик сиалис
    Биржа копирайтинга. Инфоканал Олимпиады 2008.
    viagrabuy24.ru
  • Велотренажер
    Условия доставки и оплаты. Новости и акции компании.
    strongpeople.ru
  • Муж на час
    Мелкий бытовой ремонт. Ежедневное пополнение коллекции.
    potap.org
Тэги:
ALL AVG battles CASE CAST CHAR CHARINDEX classes COALESCE Convert COUNT CTE DATEDIFF DATEPART DATETIME DELETE DISTINCT EXCEPT EXISTS EXTRACT FROM FULL JOIN GROUP BY Guadalcanal HAVING IN INNER JOIN insert INTERSECT ISNULL laptop LEFT LEFT OUTER JOIN LEN maker MAX MIN MySQL NOT IN NULL ORDER BY Outcome outcomes OVER PARTITION BY pc PIVOT PostgreSQL printer product Больше тэгов
Учебник обновлялся
несколько дней назад
©SQL-EX,2008 [Развитие] [Связь] [О проекте] [Ссылки] [Team]
Перепечатка материалов сайта возможна только с разрешения автора.
Rambler's Top100