我在sql server中有一个表,但我想添加一个充满零的额外列 我这样做:
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title></title>
<script>
window.onload = function x() {
Array1 = [{ "name": "a1", "value": "a1" }, { "name": "b1", "value": "b1" }];
Array2 = [{ "name": "a2", "value": "a2", "array1": "a1" }, { "name": "b2", "value": "b2", "array1": "a1" }, { "name": "c2", "value": "c2", "array1": "b1" }];
Array3 = [{ "name": "a3", "value": "a3", "array2": "a2" }, { "name": "b3", "value": "b3", "array2": "a2" }, { "name": "c3", "value": "c3", "array2": "a2" }, { "name": "d3", "value": "d3", "array2": "c2" }, { "name": "e3", "value": "e3", "array2": "c2" }];
//create the table
var table = document.getElementById("table");
var mainTR = document.createElement("TR");
table.appendChild(mainTR);
var numRow = 0;
var numColumn = 0
for (var i = 0; i < Array1.length; i++) {
var a1 = Array1[i];
var td1 = document.createElement("TD");
td1.style.width = '20px';
mainTR.appendChild(td1);
var label = document.createElement('label')
label.htmlFor = i;
label.appendChild(document.createTextNode(a1.name.toString()));
var mybr = document.createElement('br');
td1.appendChild(label);
for (var j = 0, numColumn = 0; j < Array2.length; j++) {
var a2 = Array2[j];
if (a2.array1 == a1.name) {
if (i == 0) {
var tr = document.createElement("TR");
tr.id = "tr" + numRow;
numRow += 1;
table.appendChild(tr);
}
else {
var row = document.getElementById(("tr" + numColumn).toString());
//var tr = row.insertCell(i+1);
var tr = row.insertCell();
}
var td1 = document.createElement("TD");
td1.style.width = '20px';
tr.appendChild(td1);
var label = document.createElement('label')
label.htmlFor = i;
label.appendChild(document.createTextNode(a2.name.toString()));
var mybr = document.createElement('br');
td1.appendChild(label);
numColumn += 1;
}
for (var z = 0, numColumn = 0; z < Array3.length; z++) {
var a3 = Array3[z];
if (a3.array2 == a2.name) {
if (i == 0) {
var tr = document.createElement("TR");
tr.id = "tr" + numRow;
numRow += 1;
table.appendChild(tr);
}
else {
var row = document.getElementById(("tr" + numColumn).toString());
//var tr = row.insertCell(i+1);
var tr = row.insertCell();
}
var td1 = document.createElement("TD");
td1.style.width = '20px';
tr.appendChild(td1);
var label = document.createElement('label')
label.htmlFor = i;
label.appendChild(document.createTextNode(a3.name.toString()));
var mybr = document.createElement('br');
td1.appendChild(label);
numColumn += 1;
}
}
}
}
}
</script>
<style>
.table{
border: 1px solid black;
border-color:red;
}
td{ border: 1px solid black; }
</style>
</head>
<body>
<table id="table" style="width: 100%; font-size: 14px;">
</table>
</body>
</html>
当我DECLARE @var numeric(10,1) set @var = 0.0
SELECT tmp.a,
tmp.b,
@var
INTO #tmp2
from #tmp1 as tmp
列得到0但我想要0.0
答案 0 :(得分:2)
您需要为列命名,这将按预期工作,使C列保留值0.0:
// This is your input string
String value = "SomeValue";
// Your query goes here
PreparedStatement s = connection.prepareStatement(
"UPDATE TheTable SET XmlField = ? WHERE Id = ?");
// Convert the input string to bytes according to the UTF-8 character encoding
byte[] varBinary = value.getBytes(StandardCharsets.UTF_8);
// Set the XmlField parameter in the prepared statement.
s.setBytes(1, varBinary)
// ID field
s.setInt(2, 42)
结果:
CREATE TABLE #temp1(a int, b int)
INSERT #temp1 values(1,1),(2,2)
DECLARE @var numeric(10,1) set @var = 0.0
SELECT a,
b,
@var c
INTO #tmp2
FROM #temp1
SELECT * from #tmp2
答案 1 :(得分:0)
首先,您的SQL不正确,您需要在SELECT列表中为@var指定列名。其次,我无法重现这个问题。我使用的是SQL Server 2014,它从#tmp2返回0.0,而不是0。