Как я могу сохранить bigint как nvarchar в таблице SQL Server без научной записи? - PullRequest
0 голосов
/ 04 июля 2019

Мне нужно хранить числовое значение в таблице SQL в виде строки (из-за некоторых идентификаторов, содержащих нечисловые символы), но у меня возникают проблемы с достижением этого без его сохранения в научной нотации, что не будет проблемой если бы я мог настроить это в представлении, но при этом он теряет последние несколько цифр.

Я пытался (как и в случае с запросом) привести его к bigint, а затем к nvarchar в операторе INSERT INTO, но это не влияет на то, как оно сохраняется.

Вот чего я пытаюсь достичь:

CREATE TABLE [dbo].[customer_comp](
    [customer_ref] [nvarchar](50) NULL,
    [customer_name] [nvarchar](255) NULL
) ON [PRIMARY]

INSERT INTO [customer_comp] 
    (customer_ref, customer_name)
VALUES
    ('199000243', 'John Smith'),
    ('CR-222-3X0D', 'Jane Smith');

Ожидаемые результаты:

+--------------+---------------+
| customer_ref | customer_name |
+--------------+---------------+
| 199000243    | John Smith    |
| CR-222-3X0D  | Jane Smith    |
+--------------+---------------+

Результаты, которые я продолжаю получать:

+--------------+---------------+
| customer_ref | customer_name |
+--------------+---------------+
| 1.9900e+003  | John Smith    |
| CR-222-3X0D  | Jane Smith    |
+--------------+---------------+

В случае, если я поступаю об этом совершенно неверным образом, я сохраняю его таким образом, поскольку некоторые значения хранятся в буквенно-цифровом формате, например «AAA-NNNA-NNAA», а некоторые значения все числовой 'NNNNNNNN', поэтому требуется, чтобы столбец принял nvarchar.

1 Ответ

1 голос
/ 04 июля 2019

Просто если кто-нибудь натолкнется на это в будущем, вы можете просто INSERT INTO не приводить данные в любом случае. Преобразование числового значения в bigint, а затем в nvarchar после, как показано ниже, приведет к сохранению научной записи:

CAST(CAST(customer_ref as bigint) as nvarchar(50))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...