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

Как да използвам клауза между в nvarchar?

Ако приемем, че няма да имате НИКАКВО ОТРИЦАТЕЛНО ЧИСЛО, трябва да прехвърлите nvarchar към Int за клаузата между и да зададете стойност по подразбиране за случая, когато не може да се преведе, както е показано по-долу:

 SELECT *
  From Vendor_Value_Table
WHERE (Vendor_Value_Table.Feature_ID in (17,19)) 
AND(
value_text like 'Dhol Wala$Shahnai Wala' 
OR 
 (SELECT CASE WHEN ISNUMERIC(value_text) = 1 THEN CAST(value_text AS INT) ELSE -1 END) between 0 and 100
 )

Избрахме -1 по подразбиране, тъй като ако не може да номерира, клаузата между винаги трябва да е false.

(ЩЕ ОТГОВОРЯВА САМО ЗА ЧИСЛАТА ПО-МАЛКИ ОТ INT RANGE)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Препоръчайте използването на временна таблица или променлива на таблица в Entity Framework 4. Актуализирайте Performance Entity framework

  2. Оптимизирайте търсенето в пълен текст в множество таблици

  3. Намерете недублирани записи, с изключение на нули, въз основа на едно поле.

  4. Как да експортирате XML с помощта на заявка на SQL Server?

  5. Възстановяване на база данни на SQL Server (T-SQL)