我有三张桌子:
Flight table
FlightId int
FlightNumber varchar(10)
FlightCapacity table
ID int
FlightIdRef int
ClassIdRef int
Capacity int
Class Table
ClassId int
Name varchar(10)
Class Table:
ClassId Name
1 Y
2 A
Flight Table
FlightId Number
1 123
2 423
FlightCapacity Table
Id FlightIdRef ClassIdref Capacity
1 1 1 10
2 1 2 20
3 2 2 10
Run Code Online (Sandbox Code Playgroud)
这是一个简单的查询:
select Flight.FlightNumber,Class.Name+RTRIM(FlightCapacity.Capacity)
from Flight
inner join FlightCapacity
on Flight.FlightId=FlightCapacity.FlightIdRef
inner join Class
on FlightCapacity.ClassIdRef=Class.ClassId
Run Code Online (Sandbox Code Playgroud)
但我希望得到以下结果:(我想在一行中显示每个航班和容量的所有类别)
FlightNumber ClassNameAndCapacity
123 Y10 A20
423 Y10
Run Code Online (Sandbox Code Playgroud) 我有以这种形式登录的表:
login1 domain1\login2 otherDomain\login3
数据始终采用以下形式:
DOMAIN\login
或
login
我需要在表单中检索没有前缀的用户登录(将所有内容保留在'\'的右侧):
login1 login2 login3
如何在SQL Server中执行此操作?
我想编写一个查询,它将为服务器上的所有数据库提供对用户的可访问性(读取或访问更多).
谢谢,Omkar.
我有一张桌子:
| ID | Val |
+-------+-----+
| abc-1 | 10 |
| abc-2 | 30 |
| cde-1 | 10 |
| cde-2 | 10 |
| efg-1 | 20 |
| efg-2 | 11 |
Run Code Online (Sandbox Code Playgroud)
并希望得到基于子串(ID,1,3)和最小值的结果,并且如果Val有重复,则ist必须是第一个
| ID | Val |
+-------+-----+
| abc-1 | 10 |
| cde-1 | 10 |
| efg-2 | 11 |
Run Code Online (Sandbox Code Playgroud)
问题是我卡住了,因为我不能使用group by substring(id,1,3),ID,因为它将再次有2行(每个用于abc-1和abc-2)
我有一些表DOCUMENTS有一个列TYPE_ID和一个名为TYPES
Now 的表我希望进行一个查询过滤我的DOCUMENTS所有文档,其中包含一个列表TYPE_ID,可以是单个元素或一类元素
正常查询是:
Select * From DOCUMENTS Where TYPE_ID = myValue
Run Code Online (Sandbox Code Playgroud)
但是当它可以是wuery看起来像已知元素的列表时
Select * From DOCUMENTS Where TYPE_ID = myValue1 or TYPE_ID = myValue2 or TYPE_ID = myValue3
Run Code Online (Sandbox Code Playgroud)
但是如果你有n个元素......这个查询怎么办呢?
我有一个大文本文件(超过3亿条记录).有一个字段包含YYYYMM格式的日期.目标字段是日期类型,我正在使用MS SQL 2008 R2服务器.由于数据量巨大,我更喜欢使用批量插入.这是我已经做过的事情:
bulk insert Tabela_5
from 'c:\users\...\table5.csv'
with
(
rowterminator = '\n',
fieldterminator = ',',
tablock
)
select * from Tabela_5
Run Code Online (Sandbox Code Playgroud)
201206在文件中原来是2020-12-06在服务器上,而我希望它2012-06-01(我不关心这一天).有没有办法将这种格式的日期批量插入日期类型的字段?
亲切的问候maciej pitucha
我正在使用MS SQL Server 2008 R2,我需要在每一行中都有一个单元格,其中包含在数据库中插入行的日期和时间.现在,因为我想编写脚本,然后在MS SQL Server 2005中加载数据库我不能使用日期时间或日期,所以我尝试在计算列规范属性中使用getdate()函数.谁能帮帮我吗.
谢谢
我有一个应用程序,允许用户上传大型数据文件,然后解析并将数据存储在SQL Server 2008 R2数据库中.
我想在导入数据的表上自动运行UPDATE STATISTICS,因为用户可以运行数据报告并且数据量非常大.
数据访问是通过存储过程完成的,用户对表没有权限,只对存储过程执行.
我编写了一个存储过程来获取一个表名,并使用sp_Executesql对传入的表名运行UPDATE STATISTICS.存储过程和表都归dbo所有.我收到一条错误,上面写着"无法找到对象"表"因为它不存在或您没有权限." 如果我在桌面上向用户授予alter,那么它可以正常工作,但我想避免这样做.我认为如果表和存储过程由同一所有者拥有,则忽略用户的权限.
没有alter table权限,是否可以以某种方式运行UPDATE STATISTICS?
我们仓库中无处不在的两个最重要的字段是UserAccountKey和DateKey.
这些是正确的数据类型吗?
WH是在2006年创建的,所以类型Date不是一个选项,虽然我们现在正在运行,2008-R2所以它现在是WH的下一次迭代的选项.这是一个完善的WH,它有多个立方体和一个完整的报告系统.上面的另外一个问题是,在创建WH时,架构师是否更好地将DateKey作为类型Char(8)而不是INT?
此问题与并发高速插入有关.我必须承认,在我眼中这是非常有趣的.
我正在使用SQL Server 2008 R2执行T-SQL插入和插入触发器之后.
我想确保在插入和插入后触发器之间不会执行任何命令.
使用隔离级别导致死锁或只是不不解决问题.
我正在使用的程序是从Phil到SQL Server依赖身份的答案/解决方案 - 有这样的事情吗?
问题是:
有时插入介于前一个插入和插入后触发之间,导致此结果:
RoomID ItemID ItemDescription ID
------ ------ --------------- --
7 1 Door 1
7 2 Window (West) 2
7 3 Window (North) 3
8 1 Door 4
8 2 Table #1 5
8 3 Table #2 6
7 4 Table #1 7
8 4 Chair #1 8
7 6 Table #2 9
7 5 Table #3 10
8 5 Chair #2 11
Run Code Online (Sandbox Code Playgroud)
参见ID#9和#10.Thair ItemID被切换.ItemID应分别为5和6而不是6和5,但第10次插入可能发生在#9完成执行的后插入触发器之前. …