我有一个名为employee的表,这个表中有很多记录.以下是一些示例数据:
fullname | address | city
-----------------------------
AA address1 City1
AA address3 City1
AA address8 City2
BB address5 City2
BB address2 City1
CC address6 City1
CC address7 City2
DD address4 City1
Run Code Online (Sandbox Code Playgroud)
我想SELECT在sql server中有一个查询,它将只显示基于列fullname和的重复记录city.对于给定的数据并考虑条件,只有前两个记录是重复的.所以我的预期输出应该如下:
fullname | address | city
-----------------------------
AA address1 City1
AA address3 City1
Run Code Online (Sandbox Code Playgroud)
为了得到这个输出,我写了这个查询:
select fullname, city from employee group by fullname, city having count(*)>1
Run Code Online (Sandbox Code Playgroud)
如您所见,它仅选择两列,因此它提供以下输出:
fullname | city
------------------
AA City1
Run Code Online (Sandbox Code Playgroud)
如果我重写如下的查询:
select fullname, city, address from employee group …Run Code Online (Sandbox Code Playgroud) 我有一个应用程序,它将所有数据存储在 SQL Server 2008 中。该应用程序创建、修改、更新表。数据库的名称是XLPR_2001,它包含近500个表。
我想找出我通过应用程序进行的更改是否会影响整个数据库(XLPR_2001)。如果我找到它,那么我可以直接在数据库中直接进行这些更改,我可以非常快地完成工作。
我在网上搜索它,但对我的情况没有帮助。
当 if 条件满足时,我必须在中间停止我的存储过程。我使用了 NOEXEC ON 它显示了上述所有结果,直到 NOEXEC ON 语句。但我只需要 if 语句结果而不需要上述结果是可能的。
DECLARE @var1 VARCHAR(MAX),
@var2 VARCHAR(MAX),
@var3 VARCHAR(MAX)
SET @var1 = 'ASH'
SET @var3 = 'ASHff'
print @var3
IF @var1 <> ''
BEGIN
PRINT 'Information available'
SET NOEXEC ON
END
SET @var2 = 'DFGF'
SET NOEXEC OFF
Run Code Online (Sandbox Code Playgroud)
当我运行它时,我得到了这个结果:
ASHff
Information available
Run Code Online (Sandbox Code Playgroud)
但预期输出是:
Information available
Run Code Online (Sandbox Code Playgroud)
是否可以?
我是winforms的新手.我正在尝试将DataGridView的两列设置为仅限数字.我不希望用户能够在单元格中键入任何内容,除非它在一列中为自然数,而在另一列中为数值(总是一个小数).我认为这很简单..但即使从stackoverflow和其他网站尝试了很多东西后我仍然无法实现这一点.
If DataGridView1.CurrentCell.ColumnIndex = 8 Then
If Not Char.IsControl(e.KeyChar) AndAlso Not Char.IsDigit(e.KeyChar) AndAlso e.KeyChar <> "."c Then
e.Handled = True
End If
End If
Run Code Online (Sandbox Code Playgroud) 我在多台服务器上有一些例行任务(在MSSQL中更改某些列类型)。因此,我正在尝试制作一个脚本程序以连接到MSSQL并更改某些表的结构。
到目前为止,我已经完成了...我在桌面上制作了一个文本文件,并将下面的代码写在了文件中
<!DOCTYPE html>
<html>
<head>
<script>
var objConnection = new ActiveXObject("adodb.connection");
var strConn = "driver={sql server};server=192.168.139.121;database=mytest;uid=testuser;password=testpw";
objConnection.Open(strConn);
var rs = new ActiveXObject("ADODB.Recordset");
(queries for changing table structure)..
</script>
</head>
<body>
</body>
Run Code Online (Sandbox Code Playgroud)
之后,我将其另存为HTML文件并使用Internet Explorer执行。但是,没有响应。.我发现在执行'objConnection.Open(strConn);'之后 IE会永远等待响应。.是否要安装任何库或程序来执行以上所有代码?请给我一些提示
TableA
Name Items
A 1
A 2
A 2
A 3
A 3
B 1
B 1
B 2
B 2
C 1
C 2
C 2
C 3
TableB
Items ItemsName
1 One
2 Two
3 Three
Run Code Online (Sandbox Code Playgroud)
我想列出
Name
A
C
Run Code Online (Sandbox Code Playgroud)
因为A和C拥有TableB中的所有项目.B没有3.我想我应该使用"NOT EXISTS".
请看下面的查询
SELECT
product_id, SUM(unit_price * quantity) Total
FROM
tblOrders
GROUP BY
product_id
HAVING
SUM(unit_price * quantity) > 1000
Run Code Online (Sandbox Code Playgroud)
上面的查询工作正常。但是您可以在其中看到查询中,Total是一个计算列,并且在子句中再次使用相同的计算HAVING。
如何避免在HAVING子句中使用相同的计算?
我有以下代码,我在vb.net项目中使用它.如果数据库名称中没有空格,这很有效.例如,如果数据库名称是"SampleCompany",它可以正常工作,但如果数据库名称更改为"Sample Company",我们在sql命令的这一部分中发现错误:"BEGIN CREATE TABLE"&cn.Database.我们必须能够处理带/不带空格的数据库名称.
有什么建议可以解决这个问题吗?谢谢.
cn.Database="Sample Company"
sqlCreate = "IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'Cloud_UserSetting' AND TABLE_CATALOG ='" & cn.Database & "') " & _
"BEGIN CREATE TABLE " & cn.Database & ".dbo.Cloud_UserSetting(CloudId int NOT NULL, Name varchar(100) NOT NULL," & _
"Setting varchar(250) NULL " & _
"CONSTRAINT PK_Cloud_UserSetting PRIMARY KEY CLUSTERED(CloudId,Name)) END"
command = New SqlCommand(sqlCreate, cn)
command.ExecuteNonQuery()
Run Code Online (Sandbox Code Playgroud) 我正在编写一个接受名为的参数的存储过程@Vendor.我希望查询以这种方式工作,具体取决于@Vendor.
IF @Vendor IS NOT NULL - >过滤 Vendorname = @Vendor
IF @Vendor IS NULL- >不要Vendorname在WHERE子句中应用filter
我想到的策略是应用IF分支来执行同一查询的两个版本,一个带有Vendorname WHERE子句过滤器,另一个没有.
IF (@Vendor IS NOT NULL) {
select *
from table
where Vendorname = @Vendor;
} ELSE {
select *
from table;
}
Run Code Online (Sandbox Code Playgroud)
该语法可能稍微不正确,但我相信一般方法应该有效.
但是,我的问题是,是否有更简洁的方法来执行此操作,而不是再次复制相同的SQL语句?
我有一张桌子SoldCars.
Id_Car Id_Color time
8 2 2015-02-11
8 4 2015-03-11
8 2 2015-04-11
5 2 2015-05-11
8 3 2015-08-11
Run Code Online (Sandbox Code Playgroud)
我想查询以获取以下行集:
Id_car CountColors
8 3
5 1
Run Code Online (Sandbox Code Playgroud)
哪里Id_car是独特的,Id_Car并且CountColors是不同数量的颜色的数量.
我尝试了很多SQL查询,但结果远非如此.
例如:
Select dictinct Id_Car, count(Id_Color) as CountColors from SoldCars group by Id_car
Run Code Online (Sandbox Code Playgroud) 我有两个表 A 和 B。表 A 可以为每个用户有多条记录。对于表 A 中的每一行,表 B 可以有多个记录。
下面是一个例子:
Table A Table B
a_id a_key b_id b_key b_AtblID
1. 6678 5778 1. 6509 5778 6678
2. 6679 5778 2. 6508 5778 6678
3. 6507 5778 6679
4. 6505 5778 6679
5. 6490 5778 6678
Run Code Online (Sandbox Code Playgroud)
您可以在 A 表中看到 2 条记录。一条记录在 B 表中有 3 条记录,一条记录在 B 表中有 2 条记录。
我希望我的查询从表 A 中提取记录,并从 B 表中提取最新记录。如果有意义的话,我不需要表 B 中与表 A 中的记录匹配的每条记录。这是我所拥有的示例,但我的代码从表 B 中提取了所有记录:
SELECT *
FROM A
LEFT OUTER JOIN B
ON b_AtblID …Run Code Online (Sandbox Code Playgroud) 在 C# 中,我有一个代表浮点值的NumericUpDown控件,例如 2.3。它可以从用户界面增加或减少 0.1。
但是,该值无法以编程方式写入或读取,因为它是 C# 中的 int。我需要能够读取和写入这个浮点(或双精度)值。
目前,编译器强制我将其转换为 int 并删除小数位。这显然是 C# 中的一个错误。
sql ×10
sql-server ×8
t-sql ×8
.net ×3
database ×2
vb.net ×2
activex ×1
c# ×1
datagridview ×1
html ×1
javascript ×1
winforms ×1