『壹』 sql中如何進行數據的比較
是完全匹配,還是部分匹配呢?
匹配"王"字
前面匹配,select * from [a] where 姓名 like '王%'
後面匹配,select * from [a] where 姓名 like '%王'
包含匹配,select * from [a] where 姓名 like '%王%'
完全相等,select * from [a] where 姓名 = '王'
『貳』 在關系資料庫與SQL語言中,怎樣判斷兩個字元串大小
實際使用中,可以用比較操作符:大於號、小於號都可以
字元串的大小判斷和系統的排序規則有關,例如漢字可以根據拼音排序,也可以根據筆畫排序。
『叄』 sql語句如何比較同一行的兩列數據大小
作為過濾條件,返回A列大於B列的所有記錄:
Select*From表WhereA>b
作為輸出,輸入A列與B列中較大的值:
SelectCaseWhenA>BThenAElseBEndAs列名From表
『肆』 資料庫中sql語句三個數比較大小怎麼做
declare @x int ,@y int ,@z int
set @x=33
set @y=666
set @z=55
if @x>@y
begin
if @x>@z
print @x
else
print @z
end
else
begin
if @y>@z
print @y
else
print @z
end
第二種
declare @x int ,@y int ,@z int,@max int
set @x=33
set @y=22
set @z=20
if @x>@y
set @max =@x
else
set @max =@y
if @max >@z
set @max=@max
else
set @max =@z
print @max
『伍』 如何對SQL資料庫中每一行存的數大小進行比較,並將最大的那個數所在的列名找到
分兩步走比較好,用腳本處理,效率也比較高,能不用子查詢就不用子查詢:
比如php結合mysql:
$res=mysql_query("select * from student_scores");
while($row=mysql_fetch_array($res))
{
$scores=array($row['math'],$row['phycis'],$row['chem'],$row['eng']);
asort($scores);//排序保持索引關系;
$max=array_pop($scores);// 找出成績最好的科目
echo $max;//
echo array_flip($max);
}
『陸』 sql資料庫日期比大小怎麼實現
sql資料庫日期比大小怎麼實現
1、判斷其是否在某個日期區間:
Where CheckDate Between '2013-01-01' And '2013-01-31'
這個方法也可用於加幾天是多少,或減幾天是多少:
把起迄日期參數化,原CheckDate要加的,那就變成@BeginDate加,減也同理~
2、判斷其是否大於某天:
Where CheckDate >'2013-01-01' 或大於等於:Where CheckDate >='2013-01-01'
小於某天
Where CheckDate <'2013-01-01' 或小於等於:Where CheckDate <='2013-01-01'
3、判斷其是否等於某天:
如果Check欄位不帶時間,只是年月日,那直接等於就可以了;
Where CheckDate ='2013-01-01'
『柒』 在SQL語句中怎樣對varchar型別的列進行數值大小的比較
在SQL語句中怎樣對varchar型別的列進行數值大小的比較
在查詢里把fl欄位轉換成numeric型別,再比較就可以了。
strsql="select fl from mydb where cast(fl as numeric(18,2))>0 and cast(fl as numeric(18,2))<2"
怎麼判斷一個數值是varchar(32)型別的sql語句
sqlserver中沒有函式可以直接判斷一個值為vachar型別,但是ISNUMERIC()函式可以判斷一個值是否為數字,你可以先判斷是否為數字,然後進行轉換變成varchar
mysql如何在select語句中對time型別的值進行比較?
SELECT * FROM table WHERE time_to_sec(time)<time_to_sec(ཋ:00:00')
以上為比較方法。
在Oracle系統中,select語句的基本語法格式如下:
select [distinct] [*, column_name [alias], …] from tablename Where {conditions} group by {conditions} having order by expressions} [ASC/DESC];
查詢所有列:
select * from table;
查詢指定列:select colum1,colum2 from table;
取消重復行:select distinct deptno,job from emp;
使用表示式:可以在查詢列中使用表示式來連線字串(使用 || 連線字串)、改變顯示格式(如使用函式to_char)、計算顯示的資料(如使用+,-,×,/)等。
舉例:
select * from emp;
select ename ,sal,deptno from emp;
select deptno from emp;
select distinct deptno from emp;
怎樣在資料庫中使用sql語句進行型別的轉換
字串和整數日期都可以轉換的。
1.當欄位型別為:INT;
2.傳入的值為:字串型別;
3.WHERE條件中的整型欄位的傳入值用單引號或雙引號;
上述描述的前提條件下,會對把傳入的 值型別 轉換為 欄位皮芹定義的資料型別,故WHERE 條件是可以使用到索引的,但從資料庫表讀出到記憶體塊後的游輪值會被 轉換為 傳入值的資料型別,從而導致ORDER BY無法使用到索引
解釋為何ORDER BY ID沒有外部排序 或extra的內容為空,那是因為WHERE ID=ƈ' 按主鍵查詢只能查到唯一的一條記錄,故不需要排序;
ORDER BY tid 時,WHERE tid=ƈ' 按普通索引去查詢的話,能查詢到的資料條數會大於1條,加上資料型別隱形轉換了,為此需要燃磨畢再額外進行排序和extra部分有內容顯示;
SQL語句中怎樣比較兩個日期的大小?
慣例,在等號左邊盡量不要有對欄位的運算,所以一般用法有:
1、判斷其是否在某個日期區間:
Where CheckDate Beeen -01-01' And -01-31'
這個方法也可用於加幾天是多少,或減幾天是多少:
把起迄日期引數化,原CheckDate要加的,那就變成@BeginDate加,減也同理~
2、判斷其是否大於某天:
Where CheckDate >-01-01' 或大於等於:Where CheckDate >=-01-01'
小於某天
Where CheckDate <-01-01' 或小於等於:Where CheckDate <=-01-01'
3、判斷其是否等於某天:
如果Check欄位不帶時間,只是年月日,那直接等於就可以了;
Where CheckDate =-01-01'
如果CheckDate欄位是攜帶時間的就會有差別;這一點,在上述所有方法中都需要注意
eg:CheckDate 實際儲存值可能是: 20130101 08:50:54:000 或 20130101 22:50:54:000
這時直接用上面的等號是抓不到的,因此或改寫成:
Where CheckDate >= -01-01' And CheckDate < -01-02'
當然也可以把-01-01',定義為引數@Date DateTime
Where CheckDate >= @Date And CheckDate < @Date+1
不建議在等號左邊使用函式或計算對表欄位進行計算。
以上是兩個日期的判斷,另外有些日期處理函式可以了解一下:
DATEDIFF ( datepart , startdate , enddate )
返回指定的 startdate 和 enddate 之間所跨的指定 datepart 邊界的計數(帶符號的整數)。
eg:
Select DateDiff(DAY,',')
1號到5號相差4天,輸出結果為4
常用的datepart 有:
datepart 縮寫
year yy, yyyy 年
month mm, m 月
day dd, d 日
week wk, ww 周
hour hh 時
minute mi, n 分
second ss, s 秒
DATEADD(datepart, number, date)
將表示日期或時間間隔的數值與日期中指定的日期部分相加後,返回一個新的 DT_DBTIMESTAMP 值。number 引數的值必須為整數,而 date 引數的取值必須為有效日期。
eg:
Select DATEADD(DAY,1,')
1號加1天就是2號;輸出結果為 『2013-01-02』
Number可以是負數就變成減幾天
DATEADD(datepart, number, date)
將表示日期或時間間隔的數值與日期中指定的日期部分相加後,返回一個新的 DT_DBTIMESTAMP 值。number 引數的值必須為整數,而 date 引數的取值必須為有效日期。
eg:
Select DATEPART(DAY,')
返回datepart描述的部分,輸出結果為 1
請教sql語句中,Timestamp型別的資料如何賦值
sqlserver資料庫中定義int型別是不需要指定長度的,只有varchar,nvarchar需要指定,boolean是true或者false,date也不需要指定長度,跟int一樣,分字首加 *** all,不加,加big,三種情況 你用得什麼資料庫
sql語句中的timestamp型別
是這樣提示的,不能在 timestamp 列中插入非空值。請使用帶有列的列表,或 timestamp 列預設值為 NULL 的 INSERT 語句。 加入getdate()沒有效果
如何在java裡面對Object的型別值進行一個大小的比較
java中 Objiect 類 為所有類的 父類,又稱上帝。
java中允許多層繼承,這意味著總有一個最高的父類,你是沒有手動讓他繼承其它類的。
而JVM會將所有的未繼承其它類的類預設繼承了Object類,這表明,只要是類均為Object的子類,換個說法 所有的類都可以使用Object類中的方法,與其他類作比較。只需呼叫方法
equals 即可。注意在這里比較的是地址值。
作者:Tao Li
連結::hu./question/36897771/answer/69763955
來源:知乎
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。
java中類的比較一般有兩種方法,一種就是類本身實現Comparable<T>這個介面,比如通過對使用者的姓名進行比較排序:
package .ailot.pare;
public class User implements Comparable<User> {
private String name;
private int age;
private String sex;
public User(String name,int age,String sex){
this.name = name;
this.age = age;
this.sex = sex;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
@Override
public String toString() {
return "User [name=" + name + ", age=" + age + ", sex=" + sex + "]";
}
@Override
public int pareTo(User u) {
TODO Auto-generated method stub
int c = this.name.pareTo(u.name);
if(c==0){
return 0;
}else if(c > 0){
return 1;
}else{
return -1;
}
}
}
Test.java
package .ailot.pare;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;
public class Test {
public static void main(String[] args) {
List<User> userList = new ArrayList<User>();
for(int i=0;i<10;i++){
int s = new Random().nextInt(20);
User u = new User(s+"張三",i,"男");
userList.add(u);
}
Collections.sort(userList);
for(User user : userList){
System.out.println(user.toString());
}
}
}
排序的話直接用 Collections.sort( userList ) ;就可以了。
作者:Tao Li
連結::hu./question/36897771/answer/69763955
來源:知乎
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。
另一種就是類沒有實現Comparable<T>這個介面,這就需要自己新建一個比較的類,通過實現Comparator<T>來對類進行比較,還是對User類的姓名進行比較排序:
User.java
package .ailot.pare;
public class User {
private String name;
private int age;
private String sex;
public User(String name,int age,String sex){
this.name = name;
this.age = age;
this.sex = sex;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
@Override
public String toString() {
return "User [name=" + name + ", age=" + age + ", sex=" + sex + "]";
}
}
UserCompare.java
package .ailot.pare;
import java.util.Comparator;
public class UserCompare implements Comparator<User> {
@Override
public int pare(User u1, User u2) {
TODO Auto-generated method stub
int c = u1.getName().pareTo(u2.getName());
if(c == 0){
return 0;
}else if(c < 0){
return -1;
}else{
return 1;
}
}
}
Test.java
package .ailot.pare;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;
public class Test {
public static void main(String[] args) {
List<User> userList = new ArrayList<User>();
for(int i=0;i<10;i++){
int s = new Random().nextInt(20);
User u = new User(s+"張三",i,"男");
userList.add(u);
}
Collections.sort(userList,new UserCompare());
for(User user : userList){
System.out.println(user.toString());
}
}
}
排序的話直接用 Collections.sort(userList,new UserCompare());就可以了。
sql語句中如何進行日期比較?
datediff(d,需要比較的日期,getdate()),datediff返回兩個日期之間的時間差,getdate()獲取當天系統時間
『捌』 在SQL中怎樣實現字元串大小的比較
sql裡面字元串沒有大小之分,只有長度之分,可以比較長度大小,但是想用一條sql語句直接拿到大小結果來說也不太方便,最好是藉助程序或者sql腳本來做,我用oracle試了下,用case when函數是可以直接比較大小的,比如第一個值比第二個大輸出0,否則輸出1:
select(casewhenlen1>len2then0whenlen1<len2then1end)asresfrom(
selectlength('asd')aslen1,length('as')aslen2fromal)t