CREATE
PROCEDURE
my_getfirst
@str
varchar
(
100
),
@re
varchar
(
10
) OUTPUT
AS
begin
declare
@s1
as
varchar
(
100
)
declare
@s2
as
varchar
(
100
)
declare
@s3
as
varchar
(
100
)
set
@s1
=
left
(
@str
,
charindex
(
'
,
'
,
@str
)
-
1
)
set
@s2
=
substring
(
@str
,
charindex
(
'
,
'
,
@str
)
+
1
,
len
(
@str
))
set
@s3
=
left
(
@s2
,
charindex
(
'
,
'
,
@s2
)
-
1
)
while
charindex
(
'
,
'
+
@s3
+
'
,
'
,
'
,
'
+
@s1
+
'
,
'
)
=
0
begin
set
@s1
=
@s1
+
'
,
'
+
@s3
set
@s2
=
substring
(
@s2
,
charindex
(
'
,
'
,
@s2
)
+
1
,
len
(
@s2
))
set
@s3
=
left
(
@s2
,
charindex
(
'
,
'
,
@s2
)
-
1
)
end
set
@re
=
@s3
return
@re
end
go
declare
@re
as
varchar
(
10
)
exec
my_getfirst
'
558,561,559,561,559,558,561
'
,
@re
OUTPUT
select
@re
drop
proc
my_getfirst
/*
----------
561
(所影响的行数为 1 行)
*/
分享到:
相关推荐
使用`ROW_NUMBER()`函数去除基于`employee_id`和`order_date`的重复记录,并保留每组中的第一条记录: ```sql WITH cte AS ( SELECT *, ROW_NUMBER() OVER (PARTITION BY employee_id, order_date ORDER BY ...
- 确定某月内第一个和最后一个“周内某天”的日期:找到某月第一个和最后一个指定周内的日期。 - 创建日历:使用数据库表生成日历视图。 - 列出一年中每个季度的开始日期和结束日期:计算并列出一年四季的开始和...
- **SQL FIRST()**:获取第一行的值。 - **SQL LAST()**:获取最后一行的值。 - **SQL MAX()**:找出最大值。 - **SQL MIN()**:找出最小值。 - **SQL SUM()**:求和。 - **字符串函数**: - **SQL UCASE()**...
1. **使用`SUBSTRING`和`PATINDEX`**:`PATINDEX`函数用于查找字符串中的第一个数字的位置,而`SUBSTRING`则用于提取数字和字母部分。通过这种方式,我们可以分别对数字和字母部分进行排序。 2. **使用`REPLICATE`...
4. EXCEPT:返回第一个查询中存在但第二个查询中不存在的行。 四、窗口函数 1. RANK():为每个分区的行分配一个唯一的顺序号。 2. ROW_NUMBER():类似RANK(),但允许自定义排序。 3. DENSE_RANK():与RANK()类似,...
select:从一个或多个表中检索一个或多个数据列。包含信息:想选择什么表,从什么地方选择。必须要有From子句。(最常用) 当从多张表里查询的时候,会产生笛卡尔积;可用条件过滤它。 当两个表有相同字段时必须加...
以上两个SQL中dy_dj(电压等级)及xh_bz(销户标志)两个字段都没进行索引,所以执行的时候都是全表扫描,第一条SQL的dy_dj = '1KV以下'条件在记录集内比率为99%,而xh_bz=1的比率只为0.5%,在进行第一条SQL的...
- `MINUS`:返回第一个查询结果中不在第二个查询结果中的行。 6. **游标(CURSOR)**: - 在PL/SQL中处理查询结果,逐行处理数据。 7. **窗口函数(OVER)**: - `RANK()`, `DENSE_RANK()`, `ROW_NUMBER()`:为...
- **TOP N分析**:找出数据集中的前N项。 - **强度分析**:评估数据集中的强度或频率。 - **发展分析**:分析数据随时间的发展趋势。 - **自定义聚集函数**:允许用户定义自己的聚集函数以适应特殊需求。 ##### ...
- **你的第一个查询**:例如,查询一个名为`employees`的表中的所有记录,可以使用以下SQL语句:`SELECT * FROM employees;` - **总结**:通过本节的学习,初学者将能够熟练使用SELECT语句进行简单的数据查询。 ##...
### 经典SQL练习题解析 #### 1. 查询Student表中的所有记录的Sname、Ssex和Class列。...**解析**: 通过两个`Score`表的连接和比较,找出课程“3-105”中成绩高于课程“3-245”中的所有学生的记录。
- **你的第一个查询:** - 示例查询:`SELECT column_name FROM table_name;` #### 三、表达式、条件语句与运算 - **表达式:** - SQL支持多种类型的表达式,包括算术表达式、比较表达式等。 - 表达式可用于...
在本篇文章中,我们将围绕一个具体的例子——`Store_Information`表来展开讨论,该表包含了商店名称(`store_name`)、销售额(`Sales`)以及日期(`Date`)等字段的信息。接下来将详细地介绍并举例说明SQL中的一些...
8. `DISTINCT`关键字:在第(8)题中,`DISTINCT`用于去除重复的学号,确保每个学号只出现一次。 9. `NOT`操作符:`NOT`用于否定查询条件,例如`NOT EXISTS`表示不存在满足条件的子查询结果。 10. 聚合函数:虽然...
- **数据库设计**:规范化是提高性能的基础,遵循第一范式(避免重复组)、第二范式(消除部分依赖)和第三范式(消除传递依赖)。不过,适当冗余可以提高性能,如冗余数据库、冗余表或冗余字段。 - **主键设计**...
1. **最大公串算法**:在第一道题目中,要求编写一个函数找到两个字符串的最大公共子串。这是一个经典的字符串处理问题。给出的解决方案采用了暴力搜索的方法,通过两层循环遍历较短字符串的所有子串,并在较长字符...
SQL的函数部分涵盖广泛的计算和转换功能,如AVG()计算平均值,COUNT()统计数量,FIRST()和LAST()获取第一和最后一个值,MAX()和MIN()找出最大和最小值,SUM()求和,GROUP BY用于分组,HAVING用于筛选分组后的结果,...
【数据分析-第四周SQL-拓展直播】课程涵盖了MySQL数据库的核心概念和高级技巧,旨在帮助学习者深入理解并熟练掌握SQL语言。以下是对课程内容的详细解释: 1. **MYSQL 数据库架构** MySQL数据库架构包括服务器层、...
- `@@Datefirst`:获取或设置一周的第一天。 - `@@Dbts`:返回时间戳。 - `@@Langid`:获取本地语言ID。 - `@@Language`:获取本地语言名称。 - `@@Lock_Timeout`:获取当前会话的锁定超时设置。 - `@@Max_...
UNION去除重复行,UNION ALL保留所有行,INTERSECT返回两个查询的交集,MINUS返回第一个查询中存在而第二个查询中不存在的行。 5. **连接操作符**:如||,用于连接字符串,构建复合信息。例如,拼接学生的学号和...