sql >> Databasteknik >  >> RDS >> Sqlserver

Hur använder man mellan klausul på en nvarchar?

Förutsatt att du inte kommer att ha NÅGOT NEGATIVT NUMMER Du måste casta nvarchar till Int för din between-klausul och ställa in en standard för fallet det inte kan castas enligt nedan:

 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 valde -1 som standard eftersom om dess inte cast kan numrera satsen mellan måste alltid vara falsk.

(DET KOMMER ENDAST SVAR FÖR NUMRERNA MINDRE ÄN INTOMRÅDE)




  1. Infoga JSON-data i SQLite-databasen i Android

  2. DeleteDatabase stöds inte av leverantören Oracle with Entity Framework

  3. Olika resultat med samma fråga med DB::raw och Eloquent

  4. Hur får man det sista fältet i en Mysql-databas med PHP?