2015-01-10 2 views
1

В SQL Server можно выполнить запрос вроде следующего:Azure Table Storage эквивалент SQL "IN"

SELECT * 
FROM Products 
WHERE ProductId IN (1, 24, 9224) 

Как я могу сделать то же самое с Azure Table Storage? Если оператор типа IN не поддерживается, каков стандартный способ получения подмножества данных (например, 100 записей из 1 000 000) на основе несмежных значений идентификатора?

ответ

3

No.

К сожалению, таблица хранение не поддерживает IN или другие Contains операторов типа запроса.

См. Query Operators Supported for the Table Service

+0

Да, я видел эту статью: /. Если у вас есть опыт работы с хранилищем таблиц, вы знаете типичный способ решения этой проблемы? –

+3

Хотя Брендан прав, что предложение 'IN' не поддерживается, но вы можете добиться того же, что и запрос' OR'. Что-то вроде '(ProductId eq 1) или (ProductId eq 24) или (ProductId eq 9224)'. Будьте осторожны с возможными просмотрами таблиц, хотя если вы не используете 'PartitionKey' в своих запросах. НТН. –

+1

Важно отметить, что запросы OR часто вызывают сканирование таблиц, даже если у вас также есть первичный ключ. Лучше запускать несколько запросов параллельно. – Frans

Смежные вопросы