sql >> Database >  >> RDS >> Sqlserver

Hoe te gebruiken tussen clausule op een nvarchar?

Ervan uitgaande dat u GEEN ENKEL NEGATIEF NUMMER zult hebben, moet u nvarchar naar Int casten voor uw tussenclausule en een standaard instellen voor het geval het niet kan worden gecast, zoals hieronder:

 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
 )

We hebben -1 als standaard gekozen omdat als de cast niet in staat is om de clausule tussen te nummeren, altijd onwaar moet zijn.

(HET ANTWOORD ALLEEN OP DE NUMMERS DIE MINDER DAN INT BEREIK)




  1. inconsistente datatypes:bij het retourneren van tabel van cursor in een pakketfunctie - ORACLE

  2. Dynamisch bevolkt vervolgkeuzemenu; $_POST retourneert fout

  3. Rijdoelen, deel 4:Het anti-join-antipatroon

  4. Reporting Services - Multi-value parameterquery geeft geen resultaten