-
求sql40
我有一张区域表area:areaid,areaname,propertyid
还有一张设施表property:propertyid,propertyname
现在我有一个需求就是保存在area表里的propertyid是有多个值的,比如说1,2,3这种,现在我想通过一个sql语句来输出我区域里propertyid所对应的propertyname。
我开始是这样写的:select a.areaid,a.areaname,p.propertyname from area a ,property p where a.propertyid in (select propertyid from property)
但是很明显,不对,不知道有哪位大大知道?注:公司用的是sqlserver,所以最好是能兼容sqlserver的sql写法。如果能够提供oracle的写法,那就更好了,感激不尽!
问题补充:兄弟们,注意propertyid是它是关联property表中的多个propertyid的。
问题补充:renpeng301 写道贴下表的数据啊·· ···
其实表的数据应该不是很重要把?
area:
property:
2011年8月14日 21:19
8个答案 按时间排序 按投票排序
-
采纳的答案
别整这么些复杂的,既然area中propertyid的ID是多个那么就property中in过去就可以了嘛。
select b.propertyname from property a ,area b where a.propertyid in b.id
行吗? 试试2011年8月15日 09:32
-
:oops: 那你最后需要的数据结果是: a.areaid,a.areaname,p.propertyname 1 区域1 设施一,设施二 还是 a.areaid,a.areaname,p.propertyname 1 区域1 设施一 1 区域1 设施二 ???、 不管那种方法你得先分坼字符串 sqlserver create function f_splitstr(@SourceSql varchar(8000),@StrSeprate varchar(100)) returns @temp table(F1 varchar(100)) as begin declare @ch as varchar(100) set @SourceSql=@SourceSql+@StrSeprate while(@SourceSql<>'') begin set @ch=left(@SourceSql,charindex(',',@SourceSql,1)-1) insert @temp values(@ch) set @SourceSql=stuff(@SourceSql,1,charindex(',',@SourceSql,1),'') end return end 然后对如第二个情况 select a.areaid,a.areaname,p.propertyname from area a,property p where p.propertyid in (select * from dbo.splitstr(a.propertyid,',')) 对如第一个情况 一条语句就难 搞出来了。。。
2011年8月14日 22:49
-
结合上面的函数sql大致如下:
select propertyname from property where propertyid in (select * from table(splitstr(select propertyid from area where areaid = ?,',')))
2011年8月14日 22:04
-
自己写个字符串拆分函数吧。
oracle的拆分函数如下:CREATE OR REPLACE TYPE str_split IS TABLE OF VARCHAR2 (4000); CREATE OR REPLACE FUNCTION splitstr(p_string IN VARCHAR2, p_delimiter IN VARCHAR2) RETURN str_split PIPELINED AS v_length NUMBER := LENGTH(p_string); v_start NUMBER := 1; v_index NUMBER; BEGIN WHILE(v_start <= v_length) LOOP v_index := INSTR(p_string, p_delimiter, v_start); IF v_index = 0 THEN PIPE ROW(SUBSTR(p_string, v_start)); v_start := v_length + 1; ELSE PIPE ROW(SUBSTR(p_string, v_start, v_index - v_start)); v_start := v_index + 1; END IF; END LOOP; RETURN; END splitstr;
这样结合起来使用。参考http://www.cnblogs.com/gnielee/archive/2009/09/09/1563154.html2011年8月14日 21:46
-
用左连接
select a.areaid,a.areaname,p.propertyname from area a left join property p on a.propertyid = p.propertyid
查询时就是
select a.areaid,a.areaname,p.propertyname from area a left join property p on a.propertyid = p.propertyid where a.areaid = 'asdf'
2011年8月14日 21:41
-
select a.areaid,a.areaname,p.propertyname from area a ,property p where a.propertyid=p.propertyid
这样都行啊··2011年8月14日 21:40
-
select a.areaid,a.areaname,propertyname=( select propertyid from property p where p.propertyid=a.propertyid ) from area a
2011年8月14日 21:39
相关推荐
在IT行业中,数据库管理和性能优化是关键领域,而SQL_ID是Oracle数据库中一个重要的概念,它用于唯一标识SQL语句。SQL_ID是一个14字符的字符串,能够帮助我们跟踪和分析SQL查询的性能。MD5(Message-Digest ...
求SQL语句,祥情见附件
sql_求比例
博客《MySQL 数据库基础 学习笔记 0606》对应的 SQL 数据脚本,免费自取。传送门:https://blog.csdn.net/idiot5lie/article/details/117793661
在SQL Server 2005中,通过编写存储过程或脚本来实现特定的功能是一种常见的做法。本篇文章将基于提供的代码片段来详细介绍如何在SQL Server 2005中求解指定范围内的所有素数。 ### SQL Server 2005简介 SQL ...
在SQL查询中,有时我们需要计算特定数据的比例,并且在结果显示时加上百分号(%),以直观展示比例关系。本文将详细解析如何通过SQL语句实现这一功能,包括但不限于使用`COUNT()`函数、嵌套查询、类型转换等技术点。...
MSSQL SQL Server 使用 SQL 脚本实现相邻两条数据相减 MSSQL SQL Server 是一种关系型数据库管理系统,广泛应用于各种行业和领域。有时,我们需要对数据库中的数据进行操作,例如计算相邻两条数据的差异。在本文中...
在.NET框架中,SqlHelper类通常是一个自定义的辅助类,用于简化与SQL Server数据库的交互。这个类是为了提供一种方便、高效的途径来执行SQL命令和处理数据而设计的,尤其是在进行CRUD(创建、读取、更新和删除)操作...
4. **数学函数**:如`SQRT()`求平方根,`ABS()`取绝对值,`RAND()`生成随机数。 操作符在SQL中起到比较和组合数据的作用,如比较操作符(`=`, `<>`, `, `>`, `, `>=`),逻辑操作符(`AND`, `OR`, `NOT`),位操作...
该EXE软件可以免去通过SQL EXPLOR或者数据库查询界面进行查询的麻烦,直接可以打开该EXE文件,因为该EXE是读去BDE中的数据库别名进行连接,所以使用的时候你的保证你的数据库是否通过ODBC连接上。 因为在程序中用到...
### SQL存储过程根据生日求星座 #### 背景与目的 在许多应用场景中,比如社交平台、个性化推荐系统等,我们常常需要根据用户的出生日期来确定其星座,从而进行进一步的数据分析或个性化服务。本篇文章将详细介绍...
- **聚合函数**:如求总数(`COUNT`)、求和(`SUM`)、平均值(`AVG`)、最大值(`MAX`)和最小值(`MIN`)。 ##### 3. 高级查询运算符 除了基本的DML和DQL语句外,ArcGIS还支持一些高级查询运算符,如: - **UNION**:...
通过对给定文件中的 SQL 代码进行解析,我们可以看出“求比例”的实现方式主要是利用 SQL 中的聚合函数如 `SUM` 和 `COUNT`,以及分组查询 `GROUP BY` 来完成。同时,合理的数据类型选择如 `decimal` 可以确保计算...
在SQL中,水仙花数(也称为自恋数或阿波罗尼奥斯数)是指一个n位数,它的每一位数字的n次幂之和等于它本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。这个问题要求我们找出所有小于1000的水仙花数。 ...
5. 聚合函数:SUM求和,AVG求平均值,COUNT计算数量,MAX和MIN找最大值和最小值。 6. 连接(JOIN)操作:INNER JOIN返回两个表的交集,LEFT JOIN返回左表所有记录及右表匹配的记录,RIGHT JOIN反之,FULL JOIN返回两...
- **算术操作符**:+(加法)、-(减法)、*(乘法)、/(除法)、%(求模)。 - **字符串操作符**:||(字符串连接)等。 - **日期时间操作符**:用于处理日期和时间的函数,如EXTRACT(提取日期部分)、NOW(获取...
XML 查询语句转换成 SQL 语句的实现 本文主要讨论将 XML 查询语句转换成 SQL 语句的实现。XML 已经成为 Internet 上数据交换的事实标准,特别是在 Web 数据挖掘技术中,对数据源的结构化需求导致人们对 XML 文档的...
7. **聚合函数**:SQL提供了一系列聚合函数,如`COUNT()`计算记录数量,`SUM()`求和,`AVG()`求平均值,`MAX()`和`MIN()`找出最大最小值。这些函数常用于统计分析。 8. **分组与排序**:`GROUP BY`语句用于根据一个...