Используя временные таблицы, в ЕСЛИ.. ЕЩЕ Операторы

Дайте каждому входу, выберите и т. Д. Класс, который они все разделяют (например, .control). Делегируйте событие change тегу <form> (он должен быть) (например, #main). .map() значения из.

<час>

/*
When a user enters or changes any value of any .control...
an array of numbers and strings is returned.
*/
$('#main').on("change", function(event) {
  var arr = $('.control').map(function(idx, obj) {
    return Number($(this).val()) || $(this).val();
  });
  console.log(JSON.stringify(arr.toArray()));
  return arr;
});
<form id='main'>
  <fieldset>

    <legend>HW</legend>

    <label for="nameHW">Name: </label>
    <select id="nameHW" name="nameHW" class='control' required>
      <option value=''>Pick</option>
      <option value='H'>H</option>
      <option value='W'>W</option>
      <option value='HW'>HW</option>
    </select> &nbsp;&nbsp;

    <label for="qtyHW">Quantity: </label>
    <input id="qtyHW" name="qtyHW" class='control' type="number" value="0" min='0' max='99'>

  </fieldset>
</form>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

5
задан Nick Kavadias 3 April 2009 в 06:56
поделиться

3 ответа

Вы не можете только переписать оператор?

SELECT colx INTO #temp1 FROM @tbl WHERE (@checkvar IS NULL) OR (colx = @checkVar)
5
ответ дан 18 December 2019 в 09:53
поделиться

Если это - хранимая процедура, ВЫБРАТЬ.. В Вызовет перекомпилировать процедуры.

Из того, что я понимаю, лучше, чтобы составить таблицу в верхней части процедуры и позже сделать нормальные ВСТАВКИ.

Так, идентификатор предложите:

CREATE TABLE #temp1 (colx ...)

DECLARE @checkvar  VARCHAR(10)
DECLARE @tbl TABLE( colx varchar(10) )
SET @checkvar ='a'

INSERT  INTO @tbl (colx) VALUES('a')
INSERT  INTO @tbl (colx) VALUES('b')
INSERT  INTO @tbl (colx) VALUES('c')
INSERT  INTO @tbl (colx) VALUES('d')

IF @checkvar IS NULL  
BEGIN
  INSERT INTO #temp1(colx)
  SELECT colx 
  FROM @tbl
END
ELSE 
BEGIN
  INSERT INTO #temp1(colx)
  SELECT colx 
   FROM @tbl WHERE colx =@checkvar
END

Кроме того, этот путь Вы избавляетесь от ИЛИ упомянули другими решениями (OR's являются злыми ;)

/B

3
ответ дан 18 December 2019 в 09:53
поделиться
drop table #temp1

select colx into #temp1 
from @tbl
where (ISNULL(@checkvar,'0')='0' or [colx] = @checkvar )

Если @checkvar будет существовать, то он будет использовать это, куда оператор, еще он возвратит все данные. Можно измениться '0' во что-либо, что Вы хотите, пока это никогда не будет начальное значение @checkvar.

2
ответ дан 18 December 2019 в 09:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: