要求把user表内的phone列为'1386'开头的行全部放在前面,然后address列包含'北京'的全部放在后面,其余的放在中间。不能有重复行

本文主要是介绍要求把user表内的phone列为'1386'开头的行全部放在前面,然后address列包含'北京'的全部放在后面,其余的放在中间。不能有重复行,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

面试时

要求把user表内的phone列为'1386'开头的行全部放在前面,

然后address列包含'北京'的全部放在后面,

其余的放在中间。

不能有重复行

-----

大概写了一下发现UNION 和UNION ALL的区别

UNION 会排序去重复

UNION ALL 不会排序不会去重复所以要自己写(排序要写在最后一个查询哪里)

----分割线-------------------

创建表

CREATE TABLE [dbo].[user]
(
[id] [int] NOT NULL,
[name] [nchar] (50) COLLATE Chinese_PRC_CI_AS NULL,
[sex] [nchar] (50) COLLATE Chinese_PRC_CI_AS NULL,
[phone] [nchar] (50) COLLATE Chinese_PRC_CI_AS NULL,
[address] [nchar] (50) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[user] ADD CONSTRAINT [PK_user] PRIMARY KEY CLUSTERED ([id]) ON [PRIMARY]

GO


-----分割线----------------------------

插入数据

 INSERT INTO dbo.[user]
          ( id, name, sex, phone, address )
  VALUES  ( 1, -- id - int
            '张三', -- name - nchar(50)
            N'男', -- sex - nchar(50)
            N'13864587159', -- phone - nchar(50)
            N'北京'  -- address - nchar(50)
            ),
( 2, -- id - int
            '李四 ', -- name - nchar(50)
            N'女', -- sex - nchar(50)
            N'12345678911', -- phone - nchar(50)
            N'深圳'  -- address - nchar(50)
            ),
( 3, -- id - int
            '王五', -- name - nchar(50)
            N'男', -- sex - nchar(50)
            N'13868789211', -- phone - nchar(50)
            N'湖北'  -- address - nchar(50)
            ),
( 4, -- id - int
            '陈六', -- name - nchar(50)
            N'男', -- sex - nchar(50)
            N'18947114561', -- phone - nchar(50)
            N'广州'  -- address - nchar(50)
            ),
( 5, -- id - int
            '张三', -- name - nchar(50)
            N'男', -- sex - nchar(50)
            N'13864587159', -- phone - nchar(50)
            N'北京'  -- address - nchar(50)
            ),
( 6, -- id - int
            '鲁七', -- name - nchar(50)
            N'男', -- sex - nchar(50)
            N'15872345134', -- phone - nchar(50)
            N'深圳 '  -- address - nchar(50)
            ),
( 7, -- id - int
            '赵九', -- name - nchar(50)
            N'男', -- sex - nchar(50)
            N'14725836911', -- phone - nchar(50)
            N'北京'  -- address - nchar(50)
            ),
( 8, -- id - int
            '赵九', -- name - nchar(50)
            N'男', -- sex - nchar(50)
            N'14725836911', -- phone - nchar(50)
            N'北京'  -- address - nchar(50)
            ),
( 9, -- id - int
            '熊十', -- name - nchar(50)
            N'女', -- sex - nchar(50)
            N'13486261341', -- phone - nchar(50)
            N'深圳'  -- address - nchar(50)
            ),
( 10, -- id - int
            '杨十一', -- name - nchar(50)
            N'男', -- sex - nchar(50)
            N'13862384544 ', -- phone - nchar(50)
            N'深圳'  -- address - nchar(50)
            )

----------分割线--------

--查询全部数据


--查询语句union

   SELECT  * FROM (SELECT * FROM dbo.[user] WHERE phone LIKE '%1386%') a
  UNION 
  SELECT * FROM (SELECT * FROM dbo.[user] WHERE id NOT IN( SELECT id FROM dbo.[user] WHERE phone LIKE '%1386%' )AND id NOT IN 
  (SELECT id FROM dbo.[user] WHERE address LIKE '%北京%'))b
  UNION 

  SELECT * FROM (SELECT * FROM dbo.[user] WHERE address LIKE '%北京%'  )c 


--查询语句UNION ALL

   SELECT  * FROM (SELECT * FROM dbo.[user] WHERE phone LIKE '%1386%') a
  UNION ALL
  SELECT * FROM (SELECT * FROM dbo.[user] WHERE id NOT IN( SELECT id FROM dbo.[user] WHERE phone LIKE '%1386%' )AND id NOT IN 
  (SELECT id FROM dbo.[user] WHERE address LIKE '%北京%'))b
  UNION ALL

  SELECT * FROM (SELECT * FROM dbo.[user] WHERE address LIKE '%北京%')c 

(排序加 order by id)

 发现他不会排序且不会去重复                                           


---查询语句

 SELECT  * FROM (SELECT * FROM dbo.[user] WHERE phone LIKE '%1386%') a
  UNION ALL
  SELECT * FROM (SELECT * FROM dbo.[user] WHERE id NOT IN( SELECT id FROM dbo.[user] WHERE phone LIKE '%1386%' )AND id NOT IN 
  (SELECT id FROM dbo.[user] WHERE address LIKE '%北京%'))b
  UNION ALL

  SELECT * FROM (SELECT * FROM dbo.[user] WHERE address LIKE '%北京%' AND phone NOT LIKE '%1386%' )c 




这篇关于要求把user表内的phone列为'1386'开头的行全部放在前面,然后address列包含'北京'的全部放在后面,其余的放在中间。不能有重复行的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/248524

相关文章

poj2406(连续重复子串)

题意:判断串s是不是str^n,求str的最大长度。 解题思路:kmp可解,后缀数组的倍增算法超时。next[i]表示在第i位匹配失败后,自动跳转到next[i],所以1到next[n]这个串 等于 n-next[n]+1到n这个串。 代码如下; #include<iostream>#include<algorithm>#include<stdio.h>#include<math.

poj3261(可重复k次的最长子串)

题意:可重复k次的最长子串 解题思路:求所有区间[x,x+k-1]中的最小值的最大值。求sa时间复杂度Nlog(N),求最值时间复杂度N*N,但实际复杂度很低。题目数据也比较水,不然估计过不了。 代码入下: #include<iostream>#include<algorithm>#include<stdio.h>#include<math.h>#include<cstring

pip-tools:打造可重复、可控的 Python 开发环境,解决依赖关系,让代码更稳定

在 Python 开发中,管理依赖关系是一项繁琐且容易出错的任务。手动更新依赖版本、处理冲突、确保一致性等等,都可能让开发者感到头疼。而 pip-tools 为开发者提供了一套稳定可靠的解决方案。 什么是 pip-tools? pip-tools 是一组命令行工具,旨在简化 Python 依赖关系的管理,确保项目环境的稳定性和可重复性。它主要包含两个核心工具:pip-compile 和 pip

cell phone teardown 手机拆卸

tweezer 镊子 screwdriver 螺丝刀 opening tool 开口工具 repair 修理 battery 电池 rear panel 后盖 front and rear cameras 前后摄像头 volume button board 音量键线路板 headphone jack 耳机孔 a cracked screen 破裂屏 otherwise non-functiona

学习记录:js算法(二十八):删除排序链表中的重复元素、删除排序链表中的重复元素II

文章目录 删除排序链表中的重复元素我的思路解法一:循环解法二:递归 网上思路 删除排序链表中的重复元素 II我的思路网上思路 总结 删除排序链表中的重复元素 给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。 图一 图二 示例 1:(图一)输入:head = [1,1,2]输出:[1,2]示例 2:(图

C# 防止按钮botton重复“点击”的方法

在使用C#的按钮控件的时候,经常我们想如果出现了多次点击的时候只让其在执行的时候只响应一次。这个时候很多人可能会想到使用Enable=false, 但是实际情况是还是会被多次触发,因为C#采用的是消息队列机制,这个时候我们只需要在Enable = true 之前加一句 Application.DoEvents();就能达到防止重复点击的问题。 private void btnGenerateSh

解决Office Word不能切换中文输入

我们在使用WORD的时可能会经常碰到WORD中无法输入中文的情况。因为,虽然我们安装了搜狗输入法,但是到我们在WORD中使用搜狗的输入法的切换中英文的按键的时候会发现根本没有效果,无法将输入法切换成中文的。下面我就介绍一下如何在WORD中把搜狗输入法切换到中文。

【经验交流】修复系统事件查看器启动不能时出现的4201错误

方法1,取得『%SystemRoot%\LogFiles』文件夹和『%SystemRoot%\System32\wbem』文件夹的权限(包括这两个文件夹的所有子文件夹的权限),简单点说,就是使你当前的帐户拥有这两个文件夹以及它们的子文件夹的绝对控制权限。这是最简单的方法,不少老外说,这样一弄,倒是解决了问题。不过对我的系统,没用; 方法2,以不带网络的安全模式启动,运行命令行,输入“ne

MySQL脏读、不可重复读、幻读(虚读)

事务的特性: 原子性:指处于同一个事务中的多条语句是不可分割的。一致性:事务必须使数据库从一个一致性状态变换到另外一个一致性状态。比如转账,转账前两个账户余额之和为2k,转账之后也应该是2K。隔离性:指多线程环境下,一个线程中的事务不能被其他线程中的事务打扰持久性:事务一旦提交,就应该被永久保存起来。 事务隔离性问题: 如果不考虑事务的隔离性,会出现以下问题: 脏读:指一个线程中的事务读取到

【第0006页 · 数组】寻找重复数

【前言】本文以及之后的一些题解都会陆续整理到目录中,若想了解全部题解整理,请看这里: 第0006页 · 寻找重复数         今天想讨论的一道题在 LeetCode 上评论也是颇为“不错”。有一说一,是道好题,不过我们还是得先理解了它才算真正的好题。这里我们展示一种使用二进制的做法,希望能帮到你哟! 【寻找重复数】给定一个包含 n + 1 个整数的数组 nums ,其数字都