Дайте каждому входу, выберите и т. Д. Класс, который они все разделяют (например, .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>
<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>
Вы не можете только переписать оператор?
SELECT colx INTO #temp1 FROM @tbl WHERE (@checkvar IS NULL) OR (colx = @checkVar)
Если это - хранимая процедура, ВЫБРАТЬ.. В Вызовет перекомпилировать процедуры.
Из того, что я понимаю, лучше, чтобы составить таблицу в верхней части процедуры и позже сделать нормальные ВСТАВКИ.
Так, идентификатор предложите:
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
drop table #temp1
select colx into #temp1
from @tbl
where (ISNULL(@checkvar,'0')='0' or [colx] = @checkvar )
Если @checkvar будет существовать, то он будет использовать это, куда оператор, еще он возвратит все данные. Можно измениться '0' во что-либо, что Вы хотите, пока это никогда не будет начальное значение @checkvar.