sql >> Database teknologi >  >> RDS >> Sqlserver

Hvordan bruger man mellem klausul på en nvarchar?

Forudsat at du ikke har NOGET NEGATIVT NUMMER, skal du caste nvarchar til Int for din mellem-klausul og indstille en standard for sagen, hvor den ikke kan castes som nedenfor:

 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
 )

Vi valgte -1 som standard, fordi hvis den ikke cast i stand til at nummerere mellem-sætningen, skal den altid være falsk.

(DET SVARER KUN FOR NUMRE, DER ER MINDRE END INTET OMRÅDE)




  1. Mysql returnerer mere end én række

  2. Krypter adgangskode i R - for at oprette forbindelse til en Oracle DB ved hjælp af RODBC

  3. Oracle Big Data SQL

  4. Brug af tråde til at lave databaseanmodninger