Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como usar a cláusula entre em um nvarchar?


Assumindo que você não terá QUALQUER NÚMERO NEGATIVO Você deve converter nvarchar para Int para sua cláusula entre e definir um padrão para o caso de não ser passível de conversão, como abaixo:
 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
 )

Escolhemos -1 como padrão porque, se não for possível numerar, a cláusula entre precisa ser falsa sempre.

(SÓ RESPONDERÁ PARA OS NÚMEROS MENORES QUE INT RANGE)