sql >> Databáze >  >> RDS >> Sqlserver

Jak používat mezi klauzuli na nvarchar?

Za předpokladu, že nebudete mít ŽÁDNÉ ZÁPORNÉ ČÍSLO Musíte přenést nvarchar na Int pro klauzuli mezi a nastavit výchozí hodnotu pro případ, že ji nelze přenášet, jako je uvedeno níže:

 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
 )

Zvolili jsme -1 jako výchozí, protože pokud není možné přetypovat klauzuli mezi, musí být vždy nepravda.

(BUDE ODPOVĚDĚT POUZE NA ČÍSLA MENŠÍ NEŽ V ROZSAHU)




  1. Syntaxe MYSQL se nevyhodnocuje, není rovna v přítomnosti NULL

  2. Jak získat datový typ sloupců tabulky mysql?

  3. Alternativa k FIND_IN_SET v SQLite?

  4. Jak používat proměnnou tabulky v dynamickém příkazu SQL?