Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Разберете към кой дял ще бъде съпоставена дадена стойност в SQL Server (T-SQL)

Ако имате разделена таблица или индекс в SQL Server и искате да определите в кой дял ще бъде съпоставена дадена стойност, можете да направите това хубаво и бързо с $PARTITION системна функция.

Всичко, което трябва да знаете, е името на функцията за дял (и разбира се, стойността, която ви интересува).

Пример

Ето пример за демонстрация.

SELECT $PARTITION.MoviesPartitionFunction(5);

Резултат:

+--------------------+
| (No column name)   |
|--------------------|
| 2                  |
+--------------------+

В този случай стойността 5 ще влезе в дял номер 2.

Нека опитаме някои други стойности.

SELECT 
    $PARTITION.MoviesPartitionFunction(-100) AS [-100],
    $PARTITION.MoviesPartitionFunction(100) AS [100],
    $PARTITION.MoviesPartitionFunction(1000) AS [1000],
    $PARTITION.MoviesPartitionFunction(100000) AS [100000];

Резултат:

+--------+-------+--------+----------+
| -100   | 100   | 1000   | 100000   |
|--------+-------+--------+----------|
| 1      | 2     | 3      | 4        |
+--------+-------+--------+----------+

Запитвания за кръстосани бази данни

Можете също да добавите префикс към името на базата данни, за да направите заявка за друга база данни.

SELECT MovieDb.$PARTITION.MoviesPartitionFunction(5);

Преобразуване на тип данни

Типът данни на предоставената от вас стойност трябва или да съвпада, или да бъде имплицитно конвертируем в типа данни на съответната колона за разделяне.

Ако не, вероятно ще получите грешка 245.

SELECT $PARTITION.MoviesPartitionFunction('Hey!');

Резултат:

Msg 245, Level 16, State 1, Line 1
Conversion failed when converting the varchar value 'Hey!' to data type int.

Обърнете внимание, че $PARTITION връща номера на дяла за всяка валидна стойност, независимо дали стойността в момента съществува в разделена таблица или индекс, който използва функцията за дял.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server Промяна на името на базата данни

  2. SQL Server:Прикачете неправилна версия 661

  3. Научете как да използвате SQL Server Management Studio

  4. Поддръжка на Spotlight Cloud за съобщение за Azure SQL DB (предварителен преглед)

  5. SQL Server – Дисектирайте вътрешните елементи на sp_spaceused