在一个sql表中,我有一个位字段,值显示为True,当我在代码中更新 Update table1 set Active='True'它进行更新但现在显示的值1代替True.如何将值放在'True'表中而不是整数?谢谢.
在Oracle中,编写动态SQL时,会执行以下操作:
create or replace procedure myProc(n in number)
as
begin
execute immediate
'update myTable set myColumn = :n'
using n;
commit;
end;
Run Code Online (Sandbox Code Playgroud)
然后'魔术发生'.SQL Server中等效的概念/语法是什么(如果有的话)?(顺便说一句,我正在使用SQL Server 2005)
我有一个具有唯一非聚集索引的表,并且此索引中列出了4个列.我想更新表中的大量行.如果我这样做,它们将不再是不同的,因此更新因索引而失败.
我想要禁用索引,然后删除最旧的重复行.到目前为止,这是我的查询:
SELECT t.itemid, t.fieldid, t.version, updated
FROM dbo.VersionedFields w
inner JOIN
(
SELECT itemid, fieldid, version, COUNT(*) AS QTY
FROM dbo.VersionedFields
GROUP BY itemid, fieldid, version
HAVING COUNT(*) > 1
) t
on w.itemid = t.itemid and w.fieldid = t.fieldid and w.version = t.version
Run Code Online (Sandbox Code Playgroud)
内部联接内部的选择返回我们想要删除的正确数量的记录,但是对它们进行分组,实际上是实际数量的两倍.
加入后它会显示所有记录,但我想要删除的是最早的记录吗?
如何才能做到这一点?
假设您有一个包含列,Date,GroupID,X和Y的表.
CREATE TABLE #sample
(
[Date] DATETIME,
GroupID INT,
X FLOAT,
Y FLOAT
)
DECLARE @date DATETIME = getdate()
INSERT INTO #sample VALUES(@date, 1, 1,3)
INSERT INTO #sample VALUES(DATEADD(d, 1, @date), 1, 1,1)
INSERT INTO #sample VALUES(DATEADD(d, 2, @date), 1, 4,2)
INSERT INTO #sample VALUES(DATEADD(d, 3, @date), 1, 3,3)
INSERT INTO #sample VALUES(DATEADD(d, 4, @date), 1, 6,4)
INSERT INTO #sample VALUES(DATEADD(d, 5, @date), 1, 7,5)
INSERT INTO #sample VALUES(DATEADD(d, 6, @date), 1, 1,6)
Run Code Online (Sandbox Code Playgroud)
并且您想要计算每个组的X和Y的相关性.目前我使用的CTE有点乱:
;WITH DataAvgStd
AS (SELECT GroupID,
AVG(X) …Run Code Online (Sandbox Code Playgroud) 我想在查询中分配一些变量,这些变量使用CASE它的列的语句.不太确定如何做到这一点,无法找到正确的语法.
这是我到目前为止,但它有语法错误.
-- set @theID and @theName with their appropriate values
select top (1)
@theID = (Case when B.ID IS NULL then A.ID else B.ID END) ,
@theName = (Case when B.Name IS NULL then A.Name else B.Name END)
from B left join A on A.ID = B.ID where ...
Run Code Online (Sandbox Code Playgroud)
将这些变量粘贴在那里的正确位置/方法是什么?
在我们可以使用JOIN的地方使用SQL语句中的"IN"关键字是否存在任何性能问题?
SELECT xxx
FROM xxx
WHERE ID IN (SELECT Id FROM xxx)
Run Code Online (Sandbox Code Playgroud) 我有loanTable两个字段loan_id和status
loan_id status
==============
1 0
2 9
1 6
5 3
4 5
1 4 <-- How do I select this??
4 6
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我需要显示在过去Status的loan_id1点即是status4.可以帮助我在此查询.
我在一个非常严格的环境中工作,我正在尝试配置Java应用程序以连接到我本地运行的SQL Server实例.
已启用共享内存,TCP/IP和命名管道客户端协议,但只有共享内存协议作为我的SQL Server实例的"网络配置"的一部分启用.所以每当我尝试建立连接时,我都会收到错误,
"连接被拒绝:连接.验证连接属性,检查主机上是否正在运行SQL Server实例并接受端口上的TCP/IP连接,并且没有防火墙阻止与端口的TCP连接."
我很确定这是因为实例上没有启用TCP/IP.那么有没有办法在JDBC URL中指定应该使用共享内存,或者这是不可能的?
我正在玩并学习使用Microsoft SQL Server.我想将XML文档存储在表中,不会在表中修改部分XML文档(即任何更改都将通过更新该单元格中的整个XML文档来完成).
从我所看到的,我可以将XML文档存储在Xml类型的列或varchar(MAX)中.
各自的优点和缺点是什么?
我需要生成一个地址列表,我的客户将发送商品目录.他们希望将特定数量的目录(X)发送到特定的邮政编码(Y)[这与这些邮政编码中的平均收入有关]
我在SQL Server 2008 R2中有2个表:CatalogRequests和AddressList
CatalogRequests 是我们应该向客户数据库中的每个邮政编码发送多少目录的列表:
| Zip | QuantityRequested |
-------------------------------
| 12345 | 150 |
| 13445 | 800 |
| 45678 | 200 |
| 41871 | 350 |
| 77777 | 125 |
Run Code Online (Sandbox Code Playgroud)
AddressList 就是这样,一个地址列表=)
| Name | Address1 | Address2 | City | State | Zip |
---------------------------------------------------------------------------
| Bruce | 1 BatCave Dr | | Gotham City | IL | 12345 |
| Clark | 9 Smallville St | Apt …Run Code Online (Sandbox Code Playgroud) sql-server ×10
sql ×8
t-sql ×5
correlation ×1
dynamic-sql ×1
java ×1
jdbc ×1
sql-in ×1
ssms ×1
where-clause ×1
xml ×1