㈠ sql中判定數字是幾位數
select len( substring( 'px201266-101',charindex('-','px201266-101')+1,len('px201266-101')))
結果為 3
意思是:計算 『-』 符號後面的欄位長度
㈡ sqlserver中 varchar 最大長度是多少
最大長度8000,用max可以存儲達到2G。
例如:
varchar [ ( n | max) ]
可變長度,非 Unicode 字元數據。n 的取值范圍為 1 至 8,000。max 指示最大存儲大小是 2^31-1 個位元組。
在某些情況下,前台應用對過長的字串是無法正確處理的,比如一些表格控制,比如C++定義的字元串變數。
(2)sql計算varchar位數擴展閱讀:
注意事項
存儲限制
varchar 欄位是將實際內容單獨存儲在聚簇索引之外,內容開頭用1到2個位元組表示實際長度(長度超過255時需要2個位元組),因此最大長度不能超過65535。
1、編碼長度限制
字元類型若為gbk,每個字元最多佔2個位元組,最大長度不能超過32766;
字元類型若為utf8,每個字元最多佔3個位元組,最大長度不能超過21845。
若定義的時候超過上述限制,則varchar欄位會被強行轉為text類型,並產生warning。
2、行長度限制
導致實際應用中varchar長度限制的是一個行定義的長度。 MySQL要求一個行的定義長度不能超過65535。若定義的表長度超過這個值,則提示
ERROR 1118 (42000): Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs。
㈢ 求 sql語句 查詢出來一張表中的id欄位長度是11位的id id的字元類型是 varchar 在此謝過過為了
select [id] from tablename where len([id])=11
註:id屬於sql關鍵字,若當作自己表中的欄位名,查詢時應用中括弧括起來
㈣ 在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中查詢指定的位數
注意:如果是數字的話,那麼在更新的時候0有可能會丟失
所以我們必須轉換成字元
update 表 set 欄位=replace(cast(欄位 as varchar(max)),'02','10')
呵呵!
共同學習!