Выражение регистра не работает в значениях, которые 0,02 - PullRequest
0 голосов
/ 25 сентября 2019

У меня есть запрос, который имеет значение Как это 0,02 и т. Д. *

Примечание: - Когда я пытался добавить выражение case к convert, как это

>= 0.00 and <= 0.049 then 1 Star

это дает мне нулевые значения

  ,case 
    when cast([main_stars_score] as integer) >=0.05 
     and cast([main_stars_score] as integer) <= 1 
       then  N'1 نجم'
    when cast([main_stars_score] as integer) > 0.01 
    and  cast([main_stars_score] as integer) <=0.049 
       then  N'0 نجم'

Вывод: - должен прийти на 1 звезду и ниже 0,049, затем на 0 звезд

1 Ответ

0 голосов
/ 25 сентября 2019

В идеале ваш main_stars_score должен быть числовым или с плавающей запятой.Если это действительно число с плавающей точкой text , то вы должны приводить к числовому типу:

SELECT
    CASE WHEN CAST([main_stars_score] AS NUMERIC(10,2)) BETWEEN 0.05 AND 1.0
         THEN N'1 نجم'
         WHEN CAST([main_stars_score] AS NUMERIC(10,2)) BETWEEN 0.01 AND 0.049
         THEN N'0 نجم' END AS label
FROM yourTable;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...