Web design and hosting, database, cloud and social media solutions that deliver business results
  • Бизнес решения
    • Веб-дизайн сайта
      • Безопасность веб-сайта
      • Остров Уайт
    • Бизнес-услуги
      • Microsoft Azure
    • Microsoft Office
    • Социальные медиа
  • Службы баз данных
    • Отчеты
      • Claytabase Server Disk IOPs Calculator
      • SQL-принтер
      • Восстановление кода SQL
    • Проверка телефонного номера в правильном формате Великобритании с SQL Server 2008
  • О нас
    • команда
      • Chester Copperpot
      • Гэвин Клейтон
    • Портфолио
  • Академия
    • Базы данных обучения
      • SQL-Server
      • В SQL Server 2008 план обслуживания
      • Использование SQL Server Pivot-Unpivot
      • Использование дат SQL Server
      • Использование функций SQL Server
    • Изучение веб-дизайна
      • ASP-NET
      • CSS
čeština (CS)Deutsch (DE)English (EN-US)English (EN-GB)Español (ES)Français (FR)हिंदी (HI)italiano (IT)日本語 (JA)polski (PL)Português (PT)русский (RU)Türk (TR)中国的 (ZH)

CUSIP Проверьте правильную функцию Format в SQL

Создайте функцию, чтобы проверить формат CUSIP в SQL Server

Author

Этот код был создан в рамках операции импорта, чтобы очистить данные, поступающие из внешних источников, где были всякие символы, которые не должны были быть там.
Это один проверяет формат в Cusip . Это расширяется код SQL, используя документацию по статье Википедии по ссылке.
Это часть из трех связанных статей, которые будут проверять ISIN, SEDOL и Cusip идентификаторов.

SQL

ALTER FUNCTION CheckCUSIP(@CUSIP NVARCHAR(20))

RETURNS INT AS BEGIN

DECLARE @Check INT

IF RIGHT(@CUSIP,1) NOT BETWEEN '0' AND '9' BEGIN

SET @Check=-1

RETURN @Check

END

IF PATINDEX('%[^0-Z]%',@CUSIP)>0 BEGIN

SET @Check=-3

RETURN @Check

END

DECLARE @Sum INT=0,@Letter INT=1,@Char VARCHAR(1),@LetVal INT

 

WHILE @Letter<LEN(@CUSIP)

BEGIN

SET @Char=SUBSTRING(@CUSIP,@Letter,1)

SET @LetVal=((SELECT (CASE WHEN @Char BETWEEN '0' AND '9' THEN @Char ELSE ASCII(UPPER(@Char))-55END))

*(CASEWHEN @Letter%2=1 THEN 1 ELSE 2 END))

 

If @LetVal > 9 BEGIN

SET @LetVal =(@LetVal % 10)+(@LetVal / 10)

End

 

SET @Sum=@Sum+@LetVal

SET @Letter=@Letter+1

END

 

SET @Sum=(10 -(@Sum % 10))% 10

 

IF LEN(@CUSIP)<>9 BEGIN

SET @Check=-4

RETURN @Check

END

 

IF RIGHT(@CUSIP,1) BETWEEN '0' AND '9' BEGIN

SET @Check =(CASEWHEN RIGHT(@CUSIP,1)=@Sum THEN 1 ELSE 0 END)

END

RETURN @Check

 

END

Это будет только проверить формат Cusip, на самом деле существует не она или нет.

Please note, this commenting system is still in final testing.
Copyright Claytabase Ltd 2020

Registered in England and Wales 08985867

RSSLoginLink Политика в отношении файлов cookieКарта сайта

Social Media

facebook.com/Claytabaseinstagram.com/claytabase/twitter.com/Claytabaselinkedin.com/company/claytabase-ltd

Get in Touch

+442392064871info@claytabase.comClaytabase Ltd, Unit 3d, Rink Road Industrial Estate, PO33 2LT, United Kingdom
Настройки на этом сайте настроены так, что разрешены все файлы cookie. Их можно изменить на странице политики и настроек cookie. Продолжая использовать этот сайт, вы соглашаетесь на использование файлов cookie.
Ousia Logo
Logout
Ousia CMS Loader