每次我创建查询并运行它以创建报告时,我都会将查询保存在我的 Projects 文件夹中,以防将来我必须重新运行查询或者由于任何原因必须修改它,但似乎出于某种原因我在六月中旬的某个时候运行的查询没有保存。我需要查看我在查询中使用的代码,因为我正在查看报告,但有些数字看起来不正确,因此我需要检查查询以查看代码中是否存在错误编写的内容。
无论如何,在某些日志中,我是否可以在 6 月份看到我运行(但未保存)的查询的代码?如果可以的话,这将是惊人的。谢谢!
select count(title_id)as algodata from titles where pub_id =1389
select count(title_id)as binnet from titles where pub_id =0877
select count(title_id)as newmoon from titles where pub_id =0736
Run Code Online (Sandbox Code Playgroud)
使用的数据库pubs在 SQL Server 中。
我可以使用单个查询来显示单个记录中每个发布者(这里有 3 个发布者)的记录数吗?
我有一张桌子叫 STUDENT
+-----------+-----------+-----------+---------------+
| StudentID | FirstName | LastName | EnrollmenDate |
+-----------+-----------+-----------+---------------+
| 1 | x | x | x |
| 2 | x | x | x |
| 3 | x | x | x |
+-----------+-----------+-----------+---------------+
Run Code Online (Sandbox Code Playgroud)
写一个查询,拉出最后注册的学生?
a) 按 EnrollmentDate Desc 从 STUDENTorder 中选择前 1 *
或者
b) select * from STUDENT where EnrollmentDate = (select Max(EnrollmentDate) from STUDENT)
面试的时候一般会问这个问题。一位候选人回答 b) 我期待 a)。哪个更好查询?
performance sql-server-2005 sql-server query query-performance
如何找到[1, 161]结果集中没有的两个数字?
我可以使用 sql 命令找到这两个数字吗?
mysql> select blog_id from wp_blogs;
...
| 149 |
| 150 |
| 151 |
| 152 |
| 153 |
| 154 |
| 155 |
| 156 |
| 157 |
| 158 |
| 159 |
| 160 |
| 161 |
+---------+
159 rows in set (0.25 sec)
Run Code Online (Sandbox Code Playgroud)
序列是从1到161,应该有161个数字,但结果集中只有159个数字。
mysql> select count(blog_id) from wp_blogs;
+----------------+
| count(blog_id) |
+----------------+
| 159 |
+----------------+
1 row in set (0.24 sec) …Run Code Online (Sandbox Code Playgroud) 给出下表my_table:
my_column
------
A
B
C
D
Run Code Online (Sandbox Code Playgroud)
我希望能够加入自身,但没有重复的对,如下所示:
-- SELECT a.*, b.* FROM my_table a JOIN my_table b ON a.my_column <> b.my_column;
-- something like so but without the duplicate pairs
a.my_column | b.my_column
------------+-----------
A | B
A | C
A | D
B | C
B | D
C | D
Run Code Online (Sandbox Code Playgroud)
我应该如何在 SQL 中解决这个问题?
我们正在尝试使用旧表中的信息为新功能填充新表,但我们将多次将此查询作为脚本运行,因为我们想要捕获任何用户更新的数据。
表 1 架构。
table1
id | email | first_name | last_name | job | phone | user_id | institution_id | institution_type | completion_state | created_at | updated_at | mobile_phone | deleted_at
----+-------+------------+-----------+-----+-------+---------+----------------+------------------+------------------+------------+------------+--------------+------------
Run Code Online (Sandbox Code Playgroud)
表 2 架构。
table2
id | contact_id | status | data | created_at | updated_at | source_updated_at
----+------------+--------+------+------------+------------+-------------------
Run Code Online (Sandbox Code Playgroud)
这是我的查询
INSERT INTO table2 AS iic (contact_id, data, created_at, updated_at, source_updated_at)
SELECT
cc.id,
(
SELECT row_to_json(_) FROM (
SELECT
cc.email,
cc.first_name,
cc.last_name,
cc.job,
cc.phone,
cc.user_id,
cc.institution_id,
cc.institution_type,
cc.completion_state,
cc.updated_at, …Run Code Online (Sandbox Code Playgroud) 我有以下查询:
IF EXISTS( SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'NotificationTableLogRows' AND COLUMN_NAME = 'DestinationAddress') BEGIN
UPDATE NotificationTableLogRows
SET [HandlerID] = m.ID
FROM [Unicare].dbo.MobileDevices m
WHERE HandlerID is null
AND m.CallNumber = NotificationTableLogRows.DestinationAddress AND NotificationTableLogRows.HandlerTypeID = 2
END
print 'end'
Run Code Online (Sandbox Code Playgroud)
但运行后,我仍然收到错误:
Msg 207, Level 16, State 1, Line 6
Invalid column name 'DestinationAddress'.
Run Code Online (Sandbox Code Playgroud)
但是它应该只打印结束
我究竟做错了什么?
编辑:
即使:
IF 1 = 0 BEGIN
UPDATE NotificationTableLogRows
SET [HandlerID] = m.ID
FROM [Unicare].dbo.MobileDevices m
WHERE HandlerID is null
AND m.CallNumber = NotificationTableLogRows.DestinationAddress …Run Code Online (Sandbox Code Playgroud) 我跑了咆哮查询;
询问:
SELECT j.jobId,
j.productId,
p.productUnitPrice
FROM JobRequiredProducts J
JOIN Product p
ON p.productId = j.productId
WHERE j.jobId = 1
ORDER BY j.jobId
Run Code Online (Sandbox Code Playgroud)
并得到了以下结果;
查询结果:
jobId | productId | unitPrice
_____________________________
1 | 4 | 175.99
1 | 5 | 100.00
1 | 6 | 125.00
Run Code Online (Sandbox Code Playgroud)
现在,我想计算所有 unitPrice 以获得总数。我期望的结果是;
期待结果:
jobId | productId | Total
____________________________
1 | 4 | 175.99
1 | 5 | 100.00
1 | 6 | 125.00
null | null | 400.99
Run Code Online (Sandbox Code Playgroud)
因此,下面是我尝试过的查询;
我试过的查询:
SELECT j.jobId, …Run Code Online (Sandbox Code Playgroud) 我正在编写一个存储过程,它将接受一个参数并向某些收件人发送邮件。我正在使用 sql 内置存储过程。
这是代码
create proc send_mail_admin(@usage_data as varchar(200))
as
begin
--get the list of mail admins from Users
declare @admin_list varchar(max);
set @admin_list = '';
--query to get all the admins
begin
select
@admin_list = @admin_list + email + ';'
from
Users;
end
--call the mail stored procedure
exec msdb.dbo.sp_send_dbmail
@profile_name='some_mail_profile',
@recipients=@admin_list,
@subject='Mail from sql server',
@body=@usage_data + ' end of data',
@importance='HIGH' ;
end;
Run Code Online (Sandbox Code Playgroud)
我在+符号中遇到错误。如果我删除+符号并执行,则该过程正在执行。否则它给出错误。请稍微帮助一下。
我正在基于知识尝试这个。因此,如果有的话,请随时分享发送这样的邮件的缺点。
谢谢你。
我有一个条件来选择一个错误的 JSON 文档值。
我的行:
1. {"my_value": false}
2. {"my_value": 0}
3. {"my_value": "0"}
4. {"my_value": null}
5. {"my_value": true} // this one got selected
Run Code Online (Sandbox Code Playgroud)
我的查询:
SELECT * FROM my_table
WHERE JSON_UNQUOTE(JSON_EXTRACT(my_column, '$.my_value')) = false
Run Code Online (Sandbox Code Playgroud)
即使true有价值,第 5 行也会被选中。我怎样才能防止这种情况?
版本是 MySQL 8.0.25。
query ×10
sql-server ×5
mysql ×3
join ×1
json ×1
mysql-8.0 ×1
performance ×1
postgresql ×1
select ×1
self-join ×1
sum ×1
syntax ×1
t-sql ×1